C++では、filestream.closeのような文でEOF文字がファイルの最後に自動的に付加されることがわかりました。私は知りたかったのですが、デフォルトではこれもCで行っていますか?Cのfclose()関数は、デフォルトでEOF文字を追加しますか?
答えて
文字ではありません。あなたの質問の下にあるコメントを参照してください。 でも、(feof(file))
で確認することもできます。それは状態のようです。
あなたが 'feof'について正しいのですが、コメントに指摘されているように、" EOF文字 "はありません。また、多くの人が問題を抱えているため、関数を正しく使用する方法についても言及したいと思うかもしれません。https://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong – szczurcio
EOF
は文字ではありません。ファイルの末尾に達したことを示すために、いくつかの操作によって戻される値は、文字以外のint
です。だから問題は "fclose()
関数はCでファイルを閉じます"もちろんです。
EOF
文字はありません。 EOF
"は任意の有効な文字コードと等しくありません"。しばしば-1
です。ファイルには書き込まれません。
DOSではEOF文字の値が(CTRL+Z)
ですが、最近は廃止されています。
fclose
はfilestream.close
とよく似ており、ファイルを閉じます。
も参照してください:reference answer
ファイルへの書き込みに必要な明示的なファイル終了文字があった場合は、[はい、fclose
はそれを書くように手配します。自分で書く必要はありません。
たとえば、ある時点で、MS-DOSのテキストファイルの末尾に明示的なcontrol-Zファイル終了文字があります。そのOSの下のCでは、fclose
と呼んだときに、control-Z文字が書き込まれると予想していました。 (ただし、それはMS-DOSを使ってからずっとずっと長く続けられていますが、私はこれを見て覚えているとは思いません)ディスク上のファイルに明示的なファイル終端文字が必要なので、問題は解決しません。
- 1. 文字をCの文字列に追加しますか?
- 2. C#またはJava:StringBuilderに文字列を追加しますか?
- 3. objecitve cに数字の文字列を追加するには
- 4. このC関数がfcloseでクラッシュするのはなぜですか?
- 5. Json C#変数をjson文字列に追加します
- 6. ファイル内の文字列を検索し、文字または数字を追加して追加するシェルスクリプト
- 7. 関数が関数の文字列を追加していません
- 8. C++文字列の追加
- 9. Cでの文字列としての小数点の追加
- 10. Strtokの問題C(EOF文字?)
- 11. 文字列変数に関数または変数メソッドを追加する
- 12. C Sprintf()はジャンク文字を追加します
- 13. Cでテキストファイルに文字列を追加
- 14. 文字列をconst文字列に&C++で追加する
- 15. イメージファイルのEOF文字
- 16. 変数文字列内に関数を追加する
- 17. C#の文字列をC++のコールバック関数に渡します。
- 18. Cの文字列としての数値の追加
- 19. jQueryロード/追加する文字数を制限しますか?
- 20. すべての関数にnamespace文字列を追加する
- 21. C++の他の文字間に文字を追加する
- 22. 関数内の関数に(可変数の)引数の文字列を追加します
- 23. 文字列に `-`を8文字で1回追加した後、再び4文字で追加します。
- 24. WPF C# - DataGridに3つの文字列を追加します。
- 25. NSXmlParser文字列に文字列を追加しますか?
- 26. 新しいプロパティを文字列クラスCに追加します。
- 27. Pythonの文字列に関数名を追加する
- 28. t()関数は文字列を翻訳インターフェイスに追加しません
- 29. 追加/私は、文字列をフォーマットするためにC#では文字列
- 30. フォーマット文字列に変数を追加できますか?
ファイルに「EOF文字」が追加されていません。 C++の 'ofstream'でファイルを作成し、次にそれをヘキサダンプすると、あなた自身で書いたものとは別に何も見えません。 'EOF'は、一部のC入出力関数から返された単純な定数で、ストリームに何も読み込まれていないことを示します。 – szczurcio
いいえ 'fclose'は' CTRL + Z'(またはDOS時間のEOF文字)を追加しませんが、ANSIテキストストリームを開くときや 'f 'を' t' '、テキスト修飾子で使うときには、 'CTRL + Z'文字の存在、ファイルの切り詰め、それを削除して、間違った' fseek'と 'ftell'の振る舞いを避けます。 –