我有一个简单的原生C ++控制台应用程序 我想保留这样的东西:
Quit? (Y/N)
并能够输入Y或N来告诉程序该怎么做? 到目前为止,我有这段代码:
std::string whetherToQuit;
std::cout<<"Quit? (Y/N): ";
std::cin>>whetherToQuit;
if(whetherToQuit == "Y"){
exit(EXIT_SUCCESS);
}
else if (whetherToQuit == "N"){
break;
}
MSVC ++给了我一个警告,我认为应该有更好的方法来做到这一点 如果重要我正在使用Windows 有什么建议吗?
答案 0 :(得分:2)
为什么不使用char
代替:
char ans;
std::cout << "Quit? (Y/N): ";
std::cin >> ans;
if (ans == 'Y') {
return 0;
}
else if (ans == 'N') {
break;
}
答案 1 :(得分:0)
警告信息是什么?
你可以这样做:
const std::string strYes = "Y";
const std::string strNo = "N";
然后与这个常数进行比较。
答案 2 :(得分:0)
有三点值得一提:
你为什么要使用字符串?改为使用char:
char ans; if(ans =='Y'){ // op } 否则if(ans =='N'){ // op }
为什么你在其他地方使用“break”。 break语句只能在开关或循环中使用。
[已添加]使用return而不是Exit。退出绕过RAII。
最终代码应该看起来像
char ans;
std::cout << "Quit? (Y/N): ";
std::cin >> ans;
if (ans == 'Y') {
return 0;
}
else if (ans == 'N') {
// No op;
}