C ++做... whille循环重复打印与getchar函数

时间:2015-05-29 22:20:09

标签: c++ loops duplicates do-while getchar

以下代码是打印"菜单"输入与3不同时两次。

do{
    puts("Menu");
    option = getchar();
}
while (option != '3');

2 个答案:

答案 0 :(得分:3)

你只需要冲洗你的标准输入。当程序到达getChar时,它会找到换行符,并将其作为输入字符处理。

如果你没有开始使用getChar()来检索输入,那么更好的选择可能就是使用std::cin,因为它更智能地处理空白这样的空白

您还可以在从输入中检索字符之前添加行fseek(stdin,0,SEEK_END);来刷新输入。

或者您可以运行if语句来检查检索到的字符是否为换行符

if ( option != '\n' ) {
 ...
}

也会看到这个答案Using getchar() on c gets the 'Enter' after input

答案 1 :(得分:3)

快速修复:

do{ puts("Menu"); std::cin >> option; } while (option != '3');