나는()`루프 while scanf() returns when it gets what is expects or when it doesn't. What happens is it gets stuck in the
을 사용하고 있습니다.왜 루프 내부에서 % d가있는 scanf()가 이전에 유효하지 않은 입력을받은 경우 사용자 입력을 기다리지 않습니까?
내 지식 test = scanf("%d", &testNum);
은 숫자를 받으면 1을, 그렇지 않은 경우 0을 반환합니다.
내 코드 : 이을 소비 여기
#include<stdio.h>
int main(void) {
while (1) {
int testNum = 0;
int test;
printf("enter input");
test = scanf("%d", &testNum);
printf("%d", test);
if (test == 0) {
printf("please enter a number");
testNum = 0;
}
else {
printf("%d", testNum);
}
}
return(0);
}
이렇게했습니다. 고맙습니다! – bubba
'while (getchar()! = '\ n');'은 파일 끝 (end-of-file) 조건에서 무한 루프라는 것에주의하십시오. – chux