C跳过getch
当我看到在某些情况下C跳过了一些输入时,我很惊讶。在我的例子中,我使用的是带有代码::块(xterm)的Ubuntu。例如,如果我有以下部分代码:C跳过getch,c,scanf,getch,C,Scanf,Getch,当我看到在某些情况下C跳过了一些输入时,我很惊讶。在我的例子中,我使用的是带有代码::块(xterm)的Ubuntu。例如,如果我有以下部分代码: scanf("%d",&someInt); getch(); 我可以输入一个数字,但按enter键,它会保存someInt的值,并自动将enter char发送到getch()。我希望我的程序在输入数字并按enter键后等待按任意键。但这不会发生。我已经找到了解决办法,但这不是一个好办法 scanf("%d",&someInt);
scanf("%d",&someInt);
getch();
我可以输入一个数字,但按enter键,它会保存someInt的值,并自动将enter char发送到getch()。我希望我的程序在输入数字并按enter键后等待按任意键。但这不会发生。我已经找到了解决办法,但这不是一个好办法
scanf("%d",&someInt);
getch();
getch();
使用两个getch()解决了我的问题。我正在输入号码,必须按任意键才能继续。为什么会发生这种情况?如何解决此问题?
getch()
读取一个字符,而在您的情况下,它正在读取一个\n
,因为在读取someint
后,一个换行符留在缓冲区中。您可以在scanf
格式中包含换行符:
scanf("%d\n", &someInt);
getch();
您确定您使用的是
getch
而不是getchar
?getchar(),抱歉:)