以下代码是打印"菜单"输入与3不同时两次。
do{
puts("Menu");
option = getchar();
}
while (option != '3');
答案 0 :(得分:3)
你只需要冲洗你的标准输入。当程序到达getChar时,它会找到换行符,并将其作为输入字符处理。
如果你没有开始使用getChar()
来检索输入,那么更好的选择可能就是使用std::cin
,因为它更智能地处理空白这样的空白
您还可以在从输入中检索字符之前添加行fseek(stdin,0,SEEK_END);
来刷新输入。
或者您可以运行if语句来检查检索到的字符是否为换行符
if ( option != '\n' ) {
...
}
答案 1 :(得分:3)
快速修复:
do{
puts("Menu");
std::cin >> option;
}
while (option != '3');