私は本からコードをコピーします、それは一撃のようなループです、
for(;;)
{
printf("enter a value");
scanf("%lf",&value);
tot al+=value;
++count;
printf("do you want to enter another value?(N or Y):");
scanf("%c",&answer);
if(tolower(answer)=='n')
break;
}
しかし、いくつかの奇妙な動作があります。評価すると、出力が得られます
[tintin@tintin-laptop Documents]$ ./test
this enter a value3
do you want to enter another value?(N or Y):enter a value
入念にチェックして最終的に変更したところ
scanf("%c",&answer);
%c の前のスペースで
scanf(" %c",&answer);
それは通常のように振る舞いました
[tintin@tintin-laptop Documents]$ ./test
this enter a value2
do you want to enter another value?(N or Y):y
enter a value3
do you want to enter another value?(N or Y):
なぜこのようなことが起こり得るのですか?