循环重复打印下面的代码打印“菜单”时,两次输入来自3C++做... whille用getchar函数
do{
puts("Menu");
option = getchar();
}
while (option != '3');
循环重复打印下面的代码打印“菜单”时,两次输入来自3C++做... whille用getchar函数
do{
puts("Menu");
option = getchar();
}
while (option != '3');
速战速决则可以运行一个if语句来检查:
do{ puts("Menu"); std::cin >> option; } while (option != '3');
谢谢你为我的学习作出贡献。 – rplaurindo
你只需要刷新你的标准输入不同。当程序到达getChar时,它会找到换行符,并将其作为输入字符进行处理。
如果你不使用getChar()
检索输入设置一个更好的选择很可能是使用std::cin
,因为它与空格交易,如这个更智能
你也可以通过添加行刷新输入fseek(stdin,0,SEEK_END);
就在您从输入中检索字符之前。
,或者检索到的字符是换行符
if (option != '\n') {
...
}
谢谢你对我的学习做出贡献。 IF也可以工作。 – rplaurindo
由于中拖行新字符也许? –
每当它循环时它都会打印“菜单”。你期望它做什么? – GrahamS
@GrahamS宽恕,朋友。也许我不是很清楚。但是当代码很小时,我认为它是有效的测试。 getchar方法需要一个键,但是在puts(“menu”)之后,然后“menu”已经打印一次,但是如果按3和“enter”,即使在第一次运行“选项= getchar()“,”menu“被再次打印,但不应该,只应测试”while“并退出循环。 – rplaurindo