前にこのようなステートメントを見たことはありません。Cでwhileループでコンマ区切り式
while(printf("> "), fgets(str, 100, stdin), !feof(stdin)) {
..
..
}
whileループから出る条件が右端[!feof(stdin)]であることをオンラインで読みました。
またwhile(!feof(stdin))
{
printf("> ");
fgets(str, 100, stdin);
...
...
}
とは対照的に、文は式を取りながら 次に、上記ながら、文の使用は1,1,1がCで有効な式ですので、何ですか?
実際には、書かれたようにループラインを処理せずに終了する 'fgets'改行を受けるからEOF受信の代わりに終了します。これは、改行で終わらない最終行をループが無視するようにします。これは望ましい動作かもしれませんが、バグかもしれません。 –
@R:http://www.drpaulcarter.com/cs/common-c-errors.php#4.2からの観察を思い出しています。「著者はまだどの学生もfeof()関数を使用していない正しく! " –