while() `loopというものを使用しています。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');'はファイルの終わりの条件に無限ループすることに注意してください。 – chux