我尝试制作一个非常小的基本程序来尝试使用非单个数字或字母的输入。我输入了这段代码,但它不起作用。它启动并工作但是当你输入输入时它会停止程序而不使用if和else if。为什么这不起作用?
int main()
{
using std::cout;
using std::cin;
using std::endl;
char input[256];
cout << "Is Life Good?\n";
cin >> input;
if (input == "yes") {
}
else if (input == "Yes") {
cout << "Good\n";
}
else if (input == "YES") {
cout << "Good\n";
}
else if (input == "no") {
cout << "Change something\n";
}
else if (input == "No") {
cout << "Change something\n";
}
else if (input == "NO") {
cout << "Change something\n";
}
return(0);
}
答案 0 :(得分:10)
input == "yes"
要进行比较,您需要使用strcmp
功能。 ==
运算符不是比较值而是指针。
如果您使用,std::string
现有代码将按原样运行。 std::string
已重载运算符==
进行比较。
我建议在字符数组上使用std::string
。
答案 1 :(得分:2)
==
不能比较字符串(它比较你的情况下的内存地址)要么使用c函数strcmp
要么使用C ++ std::string