即時通訊嘗試在文本文件中存儲素數的大量列表,如果我結束了我的程序,我需要能夠讀取文件的行以查看我離開的位置。我不知道如何閱讀最後一行,無需先閱讀文件的每一行。在C++中讀取文件最後一行的最有效方法是什麼?
回答
我也不知道。只需將最後一個值寫入單獨的文件中,然後讀取該值以知道要恢復的位置。
不能這樣做,因爲它不會被保留,如果我再次運行文件 – user1767077
@ user1767077 - 哎呀,錯字;將最後一個值寫入單獨的**文件**。 –
@ user1767077在另一個文件中,例如'last_prime.txt' –
您可以使用setg()跳轉到文件的末尾,並猜測一條線的距離。如果在你的觀點和文件結尾之間有一個換行符,那麼你在倒數第二行,並知道最後一行是什麼。
但皮特貝克斯解決方案是一個更好的,我會用它來代替。
您可以計算您的號碼的字節數。
例如,您有5個數字,並且您想要讀取最後一個數字。
1整數是4字節。所以你可以使用fseek在文件中移動4 * 4 = 16 Byte。之後,你可以閱讀最後一行。 (文件,16,SEEK_SET);
SEEK_SET表示開始文件。
該文件不是二進制的(否則爲什麼用換行符分隔整數)因此一個整數不是嚴格的4個字節,例如1是1個字節,100是3個字節。 – jfs
您也可以在fclose(file)之前使用whereAmI = ftell(file),然後再次打開文件fopen(file)和fseek(file,whereAmI,SEEK_SET) –
尋求到文件的末尾,而只是讀向後直到你找到換行符,這意味着你已經找到了最後一行
的開始。如果你知道線的最大長度,這將是簡單。
只需將指針指向文件末尾的位置減去此值即可。
從那裏開始讀取行並將它們放入緩衝區。當前一個字符是新行時清除緩衝區
當您用完文件時,緩衝區將包含它。
如果您不知道最大長度,則可以始終向後讀取文件。
- 1. 什麼是從C++文件末尾讀取最有效的方法? (解析文件中的最後128位)
- 2. 向後讀取大文本文件的最有效方法是什麼?
- 3. 什麼是讀取文件的第一行和最後一行的最有效的PHP方式?
- 4. 讀取文件中最後一行的最快方法
- 5. 什麼是使用java讀取文件的最有效方式?
- 6. C# - 定期讀取文件最後部分的最有效方法
- 7. 用C#讀取文件最後一行的高性能方法
- 8. 在PHP中讀取大文件的最佳方法是什麼?
- 9. 在Delphi中讀取大文件的最快方法是什麼?
- 10. 在PHP中讀取文件的最快方法是什麼?
- 11. 在Ruby中讀取大文件的最快方法是什麼?
- 12. 什麼是逐行讀取文件的最快方法?
- 13. 解析這一行文本的最有效方法是什麼?
- 14. [R readlines方法讀取文件的只有最後一行
- 15. 這是讀取Java文本文件最後一行的最佳方法嗎?
- 16. 什麼是在java中讀取日誌文件的最有效方式?
- 17. 以塊爲單位讀取超大文件的最有效方法是什麼?
- 18. 如何高效地讀取C++文件的最後一行
- 19. 在Java中讀取文件的最有效方法?
- 20. 從文件中替換最後一行的有效方法?
- 21. 從文件中讀取最後一行
- 22. 什麼是從C#文本文件中讀取大量整數(雙精度)的最有效方法?
- 23. c +最快的方式來只讀取最後一行文本文件?
- 24. 什麼是從gfortran讀取.dbf文件的最簡單方法
- 25. 什麼是讀取/解析XML文件的最佳方法
- 26. 讀取文件的最後一行
- 27. 什麼是從TCPServer讀取最有效的方式?
- 28. 將數據寫入文件的最有效方法是什麼?
- 29. 在VBA(excel)中循環行的最有效/最快的方法是什麼?
- 30. 從文件中讀取字符的最有效方法?
文本文件不是有效的格式來存儲順序素數,例如,它甚至可能會更快[生成所有32位素數](http://cr.yp.to/primegen.html),而不是從一個文本文件。 – jfs
我會明確地以二進制格式存儲數字,比如'__int64',而不是文本。尋找文件中的最後一個二進制數將是跳轉到文件偏移量'((filesize/sizeof(__ int64)) - 1)* sizeof(__ int64)'的簡單事情。 –