int age, i;
char name[10], address[10];
for(i=0; i<3; i++)
{
printf("Enter your name: ");
gets(name);
printf("Where do you live?");
gets(address);
printf("What's your age? ");
scanf("%d", &age);
}
コードの2番目の反復では、実行は「あなたの名前を入力:」の部分をスキップします。どうして?反復のエラー
の戻り値をチェックし
gets
を取り除く - それは恐ろしく安全ではない、代わりに使用し、例えば'fgets(name、sizeof name、stdin)'これは、入力バッファ*に残っている**すべての文字を考慮しない限り、混合入力に 'scanf'を使わない理由の一番の例です(例えば、' stdin') - あなたは 'scanf("%d "、&age);' –の呼び出しの直後に*入力バッファ*に ''\ n''を残します。 –
最後のscanfは' –