C言語なら俺に聞け(入門編)Part 71
■ このスレッドは過去ログ倉庫に格納されています
0637デフォルトの名無しさん
2010/10/20(水) 05:05:48gets() と scanf() の仕様による
gets() は \n の検出で処理を完了するが scanf() は終端の \n を読み取らない為、バッファに残す
よって scanf() の直後に gets() を呼ぶと gets() はバッファに残った \n を取得し即時終了する
while( 1 ) {
printf( "Name>" );
gets( name );
printf( "Age>" );
scanf( "%d", &age );
}
上記処理において一回目の gets() は正常に動作するが、2回目以降は即時終了となるために Name>Age> と表示される
■ このスレッドは過去ログ倉庫に格納されています