gpt4 book ai didi

c++ - 奇怪的错误: label 'loopend' used but not defined, expected unqualified-id before “if ” (same error for “goto” and “' }' token ”

转载 作者:行者123 更新时间:2023-12-02 11:09:11 25 4
gpt4 key购买 nike

这是我的代码。我不确定为什么会出现这些错误,并且我尽可能地仔细查看了。

我知道第一个错误似乎发生是因为我的“loopend:”标签
在我的程序结束时似乎距离太远了。那是可能的原因吗?

至于其余的,我不知道为什么会 pop 。

在“if(Choice ==“OSI”)区域之后,这似乎是一个问题。

#include "stdlib.h"
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;

int main() {
ifstream pswdchk ("OSIUser.setting");
string Password[5];
string Passload[5];
string NormPass;
string tocmd;
int Chickenvar=0;
int CMD=1;
string Choice;
string Title;
string style = "-";
string Bdr = "";
string Columnten = "";
string Columnten1 = "";
string Columnten2 = "";
string WaitColumn = "";
std::string opt1;
std::string opt2;
std::string opt3;
std::string opt4;
std::string opt5;
std::string opt6;
loop:
system("color 3b");
if(CMD==0) {
cout <<"Invalid Command.\n\n>";
}
if (Chickenvar==1) {
cout << "\n\nChicken 'style' to chicken a stylish chicken test. Chicken 'exit' to chicken\nprogram. KFC is love, KFC is life.\n\nCHICKEN GOES HERE>";
}
if (CMD==1) {
if (Chickenvar==0) {
cout <<"OBCLS Version 0.3\nType exit to quit.\n\n>";
}
}
CMD=0;

cin >>Choice;
if(Choice=="exit") {
goto loopend;
}
if(Choice=="style") {
using namespace std; //It seems I need it here too?
CMD=1;
system("color 2e");
system("CLS");
opt1 = "\n1: Style 1";
opt2 = "\n2: Style 2";
opt3 = "\n3: Style 3";
opt4 = "\n4: Style 4";
opt5 = "\n5: Style 5";
opt6 = "\n6: No Style";
std::cout << "Hello!" << "\nThis is a test of the OIS Styling System..." << "\nChoose a style:" << opt1 << opt2 << opt3 << opt4 << opt5 << opt6 <<"\n";
std::string Choice = "";
ChoiceRetry:

cout << "\n>";
cin >> Choice;
if (Choice == "6") {
cout << "Viewing styleless window:\n\n";
goto ChoiceYes;
}

cout << "\n\n";
if (Choice == "1") {
Columnten = "----------";
Columnten1 = " ----------";
Columnten2 = "---------";
Bdr = "| ";
WaitColumn = " ---------PRESS--ENTER--------";
style = "1";
goto ChoiceYes;
}
if (Choice == "2") {
Columnten = " ";
Columnten1 = "o ";
Columnten2 = " o";
Bdr = " ";
WaitColumn = "o PRESS ENTER o";
style = "2";
goto ChoiceYes;
}
if (Choice == "3") {
Columnten = "//////////";
Columnten1 = "//////////";
Columnten2 = "//////////";
Bdr = "/";
WaitColumn = "/////////PRESS ENTER/////////";
style = "3";
goto ChoiceYes;
}
if (Choice == "4") {
Columnten = "==========";
Columnten1 = "==========";
Columnten2 = "==========";
Bdr = "=";
WaitColumn = "=========PRESS==ENTER=========";
style = "4";
goto ChoiceYes;
}
if (Choice == "5") {
Columnten = "##########";
Columnten1 = " #########";
Columnten2 = "######### ";
Bdr = "#";
WaitColumn = " ####### PRESS ENTER ####### ";
style = "5";
goto ChoiceYes;
}
cout << "Invalid input.";
goto ChoiceRetry;
ChoiceYes:
Title = " EXAMPLE: ";
//string ColumnTitle = Columnten1, Title, Columnten2;(USE COUT)
//string Column = Columnten1, Columnten, Columnten2; (USE COUT)
cout << Columnten1<< Title<< Columnten2 << "\n" ;
string TYPE = "This is an example window ";
cout << Bdr<< TYPE<< Bdr<< "\n";
TYPE = " for style ";
cout << Bdr<< TYPE<< style ;
TYPE = ". ";
cout << TYPE<<Bdr<< "\n";
cout << WaitColumn;





std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
system("CLS");
}
if (Choice=="Chicken"){
if(Chickenvar==0){
Chickenvar=1;
cout<<"Chicken Mode Enabled";
goto Chicken_toggle_end;
}
if(Chickenvar==1){
Chickenvar=0;
goto Chicken_toggle_end;
cout<<"Chicken Mode Disabled";
}
Chicken_toggle_end:
CMD=1;
goto loop;
}
if (Choice=="cmd"){
system("CLS");
system("color 6e");
cout <<"This will not work on systems with a disabled command prompt\n\n";
system("cmd");
CMD=1;
system("CLS");
}
if (Choice=="help"){
CMD=1;
cout<<"To run commands using CMD, type 'cmd'.\nTo test the styling system, type 'style'.\nTo exit the program, type 'exit'.\nTo run the GUI, type 'OSI'.\n\n";

}
if (Choice=="OSI"){
Styleloop:
system("CLS");
system("color 2a");
cout<<"\n\nChoose the system style.\nEnter 1-5, 6 for no style:";
cin>>Choice;
if (Choice == "1") {
Columnten = "----------";
Columnten1 = " ----------";
Columnten2 = "---------";
Bdr = "| ";
WaitColumn = "- - - - - - - - - - - - - - - - - - - - - - - - - ";
style = "1";
goto Styleend;
}
if (Choice == "2") {
Columnten = " ";
Columnten1 = "o ";
Columnten2 = " o";
Bdr = " ";
WaitColumn = "o o";
style = "2";
goto Styleend;
}
if (Choice == "3") {
Columnten = "//////////";
Columnten1 = "//////////";
Columnten2 = "//////////";
Bdr = "/";
WaitColumn = "////////////////// ++++ ////////////////";
style = "3";
goto Styleend;
}
if (Choice == "4") {
Columnten = "==========";
Columnten1 = "==========";
Columnten2 = "==========";
Bdr = "=";
WaitColumn = "================================================";
style = "4";
goto Styleend;
}
if (Choice == "5") {
Columnten = "##########";
Columnten1 = " #########";
Columnten2 = "######### ";
Bdr = "#";
WaitColumn = " ############################################## ";
style = "5";
goto Styleend;
}
if (Choice == "6") {
string style = "-";
string Bdr = " ";
string Columnten = " ";
string Columnten1 = " ";
string Columnten2 = " ";
string WaitColumn = " ";
goto Styleend;
}
goto Styleloop;
Styleend:
OSImainloop:
system("CLS");
opt1 = " ";
opt2 = " OSI v0.2.3 ";
opt3 = " ";
opt4 = " 1: Exit ";
opt5 = " 2: Log in ";
opt6 = " ";
Title=" Welcome to OSI GUI v1.0 ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nEnter A Number:";


cin>>Choice;
if(Choice=="1"){
goto exitmain;
}
if (Choice=="2"){
goto OSImainloopbreak;
}
goto OSImainloop;
OSImainloopbreak:
OSIlogloop:
system("CLS");
opt1 = " Type exit to go back ";
opt2 = " ";
opt3 = " ";
opt4 = " - ENTER PASSWORD - ";
opt5 = " Type 'new' to create a new user. ";
opt6 = " ";
Title=" User Login Access System ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nEnter Password:";
cin >>Choice;
if (Choice=="exit"){
goto OSImainloop;
}
if (Choice=="new"){
newuser:
system("CLS;");
opt1 = " Type exit to abort operation ";
opt2 = " ";
opt3 = " Please enter a password ";
opt4 = " for your new user. ";
opt5 = " ..... ";
opt6 = " ";
Title=" User Login Access System ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nEnter Your New Password:";
cin >>NormPass;
if (NormPass=="new"){
system("CLS;");
opt1 = " ";
opt2 = " Sorry. This password is reserved ";
opt3 = " for the new user command. ";
opt4 = " ";
opt5 = " -Press Enter- ";
opt6 = " ";
Title=" -Error- ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\n";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
goto newuser;
}
if (NormPass=="exit"){
goto OSImainloopbreak;
}
PassGenRetry:
ofstream passgen;
passgen.open ("OSIUser.setting");
if (passgen.is_open()) {
passgen <<NormPass;
}
else {
filebadloop:
system("CLS;");
opt1 = " ";
opt2 = " The file 'Users.passwf' did ";
opt3 = " not open successfully. ";
opt4 = " A new user cannot be created. ";
opt5 = " 1=Retry 2=Abort ";
opt6 = " ";
Title=" User Login Access System ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nEnter A Number:";
cin>>Choice;
if (Choice=="1"){
cout<<"Press Enter to attempt to open 'Users.passwf' again...";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
goto PassGenRetry;
}
if (Choice=="2"){
goto OSImainloopbreak;
}
goto filebadloop;
}
system("CLS;");
opt1 = " ";
opt2 = " Password has been successsfully installed. ";
opt3 = " Press Enter to continue. ";
opt4 = " ";
opt5 = " ..... ";
opt6 = " ";
Title=" User Login Access System ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\n";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
goto OSIlogloop;
}
Pswdchkloop:
if (pswdchk.is_open()){
for(int i = 0; i < 5; ++i){

pswdchk>>Password[i];
}
}
else {
chkbadloop:
system("CLS;");
opt1 = " ";
opt2 = " The file 'Users.passwf' did ";
opt3 = " not open successfully. ";
opt4 = " Passwords failed to load. ";
opt5 = " 1=Retry 2=Abort ";
opt6 = " ";
Title=" User Login Access System ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nEnter A Number:";
cin>>Choice;
if (Choice=="1"){
cout<<"Press Enter to attempt to open 'Users.passwf' again...";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
goto Pswdchkloop;
}
if (Choice=="2"){
goto OSImainloop;
}
goto chkbadloop;
}
if (Choice==Password[0]){

goto OSIlogloopbreak;
}
goto OSIlogloop;
OSIlogloopbreak:
if (Chickenvar==1){
cout<<"ADMIN ENABLED\n\nPress Enter";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
}
else {
cout<<"User initiated.\n\nPress Enter";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
}
loopmainmenu:
system("color 3b");
system("CLS;");
if (Chickenvar==1){
opt1 = " Welcome Admin v0.2.3 ";
}
else {
opt1 = " Welcome User v0.2.3 ";
}
opt2 = " Options: ";
opt3 = "-Programs ";
opt4 = "-Options ";
opt5 = "-About ";
opt6 = "-Exit ";
Title=" - Welcome - ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nChoose an option:";
cin>>Choice;
for(unsigned int n = 0; n < Choice.length(); ++n) {
Choice[n] = tolower(Choice[n]);
}
if (Choice=="exit"){
goto OSImainloop;
}
if (Choice=="about"){
system("CLS;");
system("color 7e");
opt1 = " OSI GUI and Command Shell ";
opt2 = " System ";
opt3 = " ";
opt4 = " By Olivier Poirier ";
opt5 = " ";
opt6 = " ";
Title=" - About - ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\n";
std::cin.clear();
std::cin.ignore(32767, '\n');
std::cin.get();
}
if (Choice=="programs"){
prgmloop:
system("color 2a");
system("CLS");
opt1 = " ";
if (Chickenvar==1){
opt1 = " - Hidden Items Revealed -";
}
opt2 = "-Word ";
opt3 = "-Text Adventure ";
opt4 = "-Exit ";
opt5 = " ";
if (Chickenvar==1){
opt5 = "-Special Documents ";
}
opt6 = " ";
Title=" User Login Access System ";
cout << Columnten1<< Title<< Columnten2 << "\n" ;
cout<< Bdr<< opt1<< Bdr<<"\n";
cout<< Bdr<< opt2<< Bdr<<"\n";
cout<< Bdr<< opt3<< Bdr<<"\n";
cout<< Bdr<< opt4<< Bdr<<"\n";
cout<< Bdr<< opt5<< Bdr<<"\n";
cout<< Bdr<< opt6<< Bdr<<"\n";
cout<<WaitColumn<<"\nEnter Password:";
cin >>Choice;
for(unsigned int n = 0; n < Choice.length(); ++n) {
Choice[n] = tolower(Choice[n]);
}
if (Choice=="exit"){
goto loopmainmenu;

}

}
}
goto loopmainmenu;
exitmain:
CMD=1;
system("CLS");
}
if (Choice=="clear"){
CMD=1;
system("CLS");
}

goto loop;
loopend:
return 0;
}

最佳答案

我将您的代码粘贴到VS2013中的新源文件中,然后在“编辑”菜单上的“高级”->“设置文档格式”中。这可以整理代码的缩进和布局。然后,从视觉上可以清楚地看出,您已关闭int main()函数,而此代码紧随其后,编译器拒绝了该代码。您的标签loopend在函数外部,因此在函数内部不可见。

int main() {
... ... ...
goto loopmainmenu;
exitmain:
CMD = 1;
system("CLS");
}

然后遵循此:
if (Choice == "clear"){
CMD = 1;
system("CLS");
}

goto loop;
loopend:
return 0;
}

您需要将此代码移回 int main()

作为建议,您应该替换所有这些 goto语句。
if (Choice == "Chicken"){
if (Chickenvar == 0){
Chickenvar = 1;
cout << "Chicken Mode Enabled";
goto Chicken_toggle_end;
}
if (Chickenvar == 1){
Chickenvar = 0;
goto Chicken_toggle_end;
cout << "Chicken Mode Disabled";
}
Chicken_toggle_end:
CMD = 1;
goto loop;
}

变成
if (Choice == "Chicken"){
if (Chickenvar == 0){
Chickenvar = 1;
cout << "Chicken Mode Enabled";
}
if (Chickenvar == 1){
Chickenvar = 0;
cout << "Chicken Mode Disabled";
}
CMD = 1;
}

而不是 goto loop将逻辑放入 while循环中。 Goto逻辑很难理解。

关于c++ - 奇怪的错误: label 'loopend' used but not defined, expected unqualified-id before “if ” (same error for “goto” and “' }' token ” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com