一个赋值要求我们用C语言创建一个程序,要求用户只输入数字,使用getchar()和带有while(1)的无限循环,在输入非数字字符后停止。
这是我的尝试:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(){
while(1){
int x = getchar();
if (isdigit(x) == 0){
break;
};
};
return 0;
}
但是当我运行代码并键入任何内容时,它都会在第一次尝试后停止,无论我键入什么。
你能找到一种方法来纠正上面的代码吗?
1条答案
按热度按时间nzk0hqpo1#
默认情况下,
stdin
是行缓冲的,这意味着在您按下<enter>
之前,程序不会接收到输入。如果你要整行换行,请沿着下面的行做一些事情(双关语):