2014年2月4日のブックマーク (2件)

  • Why is “while( !feof(file) )” always wrong?

    rero
    rero 2014/02/04
    ferror の条件が成立した場合,feof の条件は成立せず,無限ループになる.ループ脱出条件にはfread / fscanf / fgetc などの戻り値を使う.feof は ferror との切り分けにのみ使う.
  • feof関数でwhileループを回す奴はド素人 - hnwの日記

    (2013-04-07 01:30追記)補足のコードに恥ずかしい間違いがあったのを修正しました。@nonakapさん、id:s-tomoさん、ご指摘ありがとうございます。 (2013-04-07 10:00追記)「補足その2」を書き足しました。 (2017-04-23追記)論旨がわかりにくい部分があったので、整理しました stackoverflowの記事「“while( !feof( file ) )” is always wrong」をざっくり翻訳してみます。これはWilliam Pursellさんによる自作自演スレ(回答者も人)で、Cでwhile( !feof( file ) )というループを作るのが悪い理由を説明するものです。 ちなみにPHPについてもほぼ同じことが言えますので、PHPプログラマの方にも一読をお勧めします(PHPの主要なファイル操作関数はCとほぼ同じインターフェース

    feof関数でwhileループを回す奴はド素人 - hnwの日記
    rero
    rero 2014/02/04
    ferror の条件が成立した場合,feof の条件は成立せず,無限ループになる.ループ脱出条件にはfread / fscanf / fgetc などの戻り値を使う.feof は ferror との切り分けにのみ使う.