我这里有一个主菜单,要求用户选择。问题在于,每当用户输入“ AB”,“ BC”之类的“选择”时,由于程序读取了“(A)B”或“(B)C”,它都会前进到另一部分。如果用户输入这样的选项,我会弹出错误提示
答案 0 :(得分:0)
将整个行作为字符串读取,测试其大小,如果大于1,则报告错误。
#include <iostream>
#include <string>
int main() {
std::cout << "Enter A, B or C\n";
std::string line;
std::getline(std::cin, line);
if (line.size() > 1)
{
std::cerr << "Invalid input\n";
return -1;
}
std::cout << "Your option is " << line << std::endl;
return 0;
}
输入A,B或C
ABBBBBBBBB
无效输入
退出状态255