アプリケーションではなく手動でファイルにデータを書きました。
私のコードは char ごとにデータを読み取り、それらを異なる配列に格納していますが、条件 EOF を挿入するとプログラムが動かなくなります。
調査の結果、私のファイルには EOF の前に 3 ~ 4\n
文字あることがわかりました。私はそれらを挿入していません。それらが私のファイルにある理由がわかりません。
それらの厄介な余分な文字を削除したいですか? まず、ファイルの最後にあるそれらの数を確認します。
od -c <filename> | tail
次に、気に入らない文字をいくらでも削除します。3 の場合:
truncate -s -3 <filename>
しかし、全体として、私だったら、入力ファイル形式の仕様に従って本当に無効でない限り、望ましくない改行文字を破棄するようにプログラムを変更します。
どのテキスト エディタでも、ファイルの末尾に改行を追加するのは非常に簡単です。それらを見るには、カーソルを動かさなければなりません。エディターでファイルを開き、最後に移動すると何が起こるかを確認してください。余分な改行が表示されます。
一般に EOF 文字などというものはありません。Windows は場合によっては、control-Z を EOF として扱います。おそらく、ファイルの終わりに達したことを示す API からの戻り値について話しているのでしょうか?