因此,我试图一直询问用户一个数字,直到输入一个数字,然后打印结果,但是在第一次迭代后我无法调用scanf。任何帮助将不胜感激。
int main(void) {
int x;
int entered_an_number = 0;
while(!(entered_an_number)) {
printf("Please enter a number: \n");
if(scanf("%d", &x) == 1) {
entered_an_number = 1;
}
}
printf("You entered: %d \n", x);
return 0;
}
答案 0 :(得分:3)
简短的答案与大多数scanf
问题的答案一样,是不要使用scanf
。使用fgets
读取一行输入,然后在该输入内部进行扫描,例如:
char input[128];
fgets(input, sizeof input, stdin);
if(sscanf(input, "%d", &x) == 1) {
entered_an_number = 1;
}