当我看到C在某些情况下跳过了一些输入时,我很惊讶。在我的例子中,我使用的是带有Code::Blocks(xterm)的Ubuntu。例如,如果我有以下代码部分:
scanf("%d",&someInt);
getch();
我可以输入一个数字,但按enter键,它会为someInt保存值,并自动将enter char发送到getch()。我希望我的程序在输入数字并按回车键后等待按任意键。但这不会发生。我找到了解决办法,但这不是个好办法。
scanf("%d",&someInt);
getch();
getch();
使用两个getch()可以解决我的问题。我正在输入号码,必须按任意键才能继续。为什么会这样?怎么解决?
最佳答案
getch()
读取一个字符,在您的情况下,它读取的是一个\n
,因为在读取someint
之后,一个换行符留在缓冲区中。
关于c - C跳过getch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30005758/