如果有多个答案密钥,为什么不起作用:
无法使用密钥
if(resp == 'open')
但如果我只用一个字母替换它,那么他可以工作
if(resp == 'y')
或用数字替换它,然后他可以工作
if(resp == 1 )
我希望她能写多封信
#include <iostream>
using namespace std;
int main(){
char resp;
index:
cout<<endl;
cout<<"just an example of course"<<endl;
cout<<"type {open} to return to the index\n";
cin>>resp;
if (resp == 'open'){
goto index;
}
else if(resp == 2)
{
return EXIT_SUCCESS;
}
}
答案 0 :(得分:4)
使用string
代替char
#include <iostream>
#include <string>
using namespace std;
int main(){
string resp;
index:
cout<<endl;
cout<<"just an example of course"<<endl;
cout<<"type {open} to return to the index\n";
cin >> resp;
if (resp == "open"){
goto index;
}
/*
else if(jawab == 2)
{
return EXIT_SUCCESS;
}
*/
}
答案 1 :(得分:2)
resp
的类型为char,因此它只能存储一个字符。
char resp
更改为string resp
,然后您可以使用if(resp=="open")
以下是您编辑的代码:
#include <iostream>
using namespace std;
int main(){
string resp; //Fix 1
int jawab;
index:
cout<<endl;
cout<<"just an example of course"<<endl;
cout<<"type {open} to return to the index\n";
cin>>resp;
if (resp =="open"){ //Fix 2
goto index;
}
else if(jawab == 2)
{
return EXIT_SUCCESS;
}
}
答案 2 :(得分:1)
resp
是一个字符而不是字符数组。另外,如果要测试两个字符串是否相同,请改用strcmp(a,b)==0
。
此外,您应该使用"open"
而不是'open'
。单引号用于字符,而双引号引用字符串。
答案 3 :(得分:0)
我不确定你的要求是什么。如果要比较两个字符,可以这样做:
char resp;
if (resp == 'o'){...}
但是如果你想比较两个字符串,你应该:
std:string resp;
if (resp.compare("open") == 0){...}