5
A
回答
10
我決定將我的意見轉到答案。
您不能在您的文件中有一個「EOF字符」,因爲沒有這樣的事情。底層文件系統知道文件中有多少個字節;它不依賴於文件的內容來知道結尾在哪裏。
您正在使用的C函數返回EOF
(-1)但未從文件中讀取。這只是功能告訴你你已經到達最後的方式。而且因爲-1在任何字符集中都不是有效的字符,所以沒有混淆。
1
4
這個問題需要一些背景知識。在Windows上,有一個真實的「EOF字符」的過時DOS概念 - Ctrl-Z。實際上不可能從一個「假」的人那裏說出一個「真正的」人;嵌入Ctrl-Z的文件將包含一些程序角度的尾部隱藏數據,該程序實際上正在查找Ctrl-Z作爲文件結尾字符。不要試圖再寫這種代碼 - 這是沒有必要的。
在便攜式C API和UNIX上,32位的-1
用於指示文件結尾,它不能是有效的8位或16位字符,因此很容易區分這種差異。
+0
嗯,好吧,看來我混淆了'EOF'和'EOT',我認爲它們基本上是一回事。 Ctrl + D通常被稱爲「文件結尾」。 – polemon 2012-02-01 06:45:57
相關問題
- 1. EOF意外的文件結尾
- 2. 如何在vbscript中檢測文本文件(EOF)的結尾?
- 3. 之間有什麼區別:在C#中的文件結束(EOF),流的末尾,和字符串= NULL
- 4. 如何區分python中的「一個字符串」和「一個實際的代碼」?
- 5. 如何區分.net WebBrowser組件和實際的瀏覽器?
- 6. 如何在Java中使用BufferedReader讀取文件結尾(EOF)?
- 7. ifstream.eof() - 在實際結束前達到文件結尾
- 8. 如何在java中找到壓縮文件的文件結尾(EOF)
- 9. 添加分隔符到文件結尾
- 10. 如何替換文件中的某些字符和EOF
- 11. 常見誤解:文件末尾有一個EOF字符
- 12. 如何讓文件(EOF)的結束
- 13. 如何添加一個字符串到.txt文件的結尾?
- 14. 區分諸如.app/.xcodeproj和Cocoa中的實際文件夾之類的東西
- 15. 數組以數組元素值內的字符(「)」)結尾,而不是實際的數組結尾
- 16. 分區字符串和結腸
- 17. 如何查看文件中使用哪行結尾字符?
- 18. 爲什麼「國際貨幣符號」以空格字符結尾?
- 19. 如何使用Java複製以文本文件中的特定字符開頭和結尾的字符串
- 20. 將文件讀入字符串緩衝區並檢測EOF
- 21. 什麼是文件流文件結尾的字符?
- 22. 字符串與分號結果「未結束的字符串是否符合文件的末尾」在RubyMine的
- 23. 如何在emacs緩衝區中區分Python字符串和文檔字符串?
- 24. 如何區分字符串和整數
- 25. 如何定義字符串結尾
- 26. MySQL如何使用LIKE結尾字符
- 27. C#文本文件 - 如何編寫EOF字符
- 28. 如何根據TSql中的起始'#'字符和結尾字符'#'分割以下字符串?
- 29. 確定文件是否以EOF字符正確結束
- 30. 如何使用php來標記不是HTML實體的結尾字符的字符串中的分號(;)?
你*不能*在文件中有一個「EOF字符」。有沒有這樣的東西 – 2012-02-01 05:19:57
在DOS中,仍然可以在Windows中。 Ctrl-Z或ASCII值26.一個這樣的仍然生成帶有EOF字符的文件的應用程序是來自The Analytical Group的名爲WinQuery的產品。 – STLDeveloper 2014-03-07 06:45:29