1
A
回答
0
一個辦法是遍歷文件的行由行使用函數getline,保存關閉該數據供以後使用。讀完每行後,寫上一行(用\n
)。當沒有更多的數據可用時,請寫下沒有\n
的最後一行。
交替尋求最終獲取大小,讀取某些塊大小的塊中的數據,重寫它們,直到倒數第二個字符。如果最後一個字符是\n
則不要編寫它,否則請寫下它。
0
posix的做法是截斷函數。 如果使用seek或另一個OS調用獲取文件的長度,則可以使用截斷到 修剪文件長度的最後一個字符,而不用重寫整個事件。相當於
//This RESIZES the file without the need to REWRITE the whole thing:
struct stat fileStat;
stat("Filename", &fileStat);
status = truncate("Filename",fileStat.st_size-1);
Windows函數是chsize但它首先需要打開一個文件:
// Open a file
if(_sopen_s(&fh, "data", _O_RDWR | _O_CREAT, _SH_DENYNO,
_S_IREAD | _S_IWRITE) == 0)
{
if((result = _chsize(fh, _filelength(fh) -1)) == 0)
printf("Size successfully changed\n");
else
printf("Problem in changing the size\n");
_close(fh);
}
相關問題
- 1. 如何消除URL末尾的.html?
- 2. 如何保存文本文件而不在末尾鍵入「.txt」?
- 3. 在\ n末尾刪除空行\ n
- 4. csv文件末尾忽略「\ r \ n」
- 5. 如何在csv/txt文件的末尾添加新列python
- 6. C++如何從文本文件的末尾刪除新行?
- 7. 如何在python文件末尾添加一堆「N」?
- 8. 如何防止在文件末尾寫入「\ n」
- 9. 刪除文件末尾的空行
- 10. 刪除VB.net文件末尾的CR/LF
- 11. 用PHP刪除文件末尾的行
- 12. 如何刪除陣列末尾的第n個元素
- 13. 刪除Java中StringBuilder末尾的幾個「\ r \ n」或「\ n」
- 14. 如何讀到/ proc文件的末尾
- 15. 文件末尾要求
- 16. 如何刪除文件末尾的空行?
- 17. 如何從杜-h輸出的末尾刪除文件名
- 18. 如何移除'?'在java中讀取文件的末尾登錄
- 19. HTML文件末尾的CSS
- 20. 文檔末尾的事件
- 21. 如何從nodepad ++的末尾刪除CRLF?
- 22. Python - 刪除文件末尾的空行文本
- 23. 我如何寫文件在文件末尾的文件在c + +
- 24. 如何編輯.htaccess文件以在末尾刪除字符串
- 25. 如何讓Apache Camel在「直接」路線末尾刪除文件?
- 26. 如何從R的txt文件中刪除n行?
- 27. mmap超出文件末尾
- 28. 在文件末尾寫入
- 29. 如何從b行讀取文件到bash文件末尾
- 30. 在文件的末尾寫入新行
究竟你的「額外」是什麼意思?一個文本文件是一系列的行,一行是零個或多個字符,後跟一個換行符。如果文件中的最後一個字符不是換行符,那麼嚴格來說它不是一個文本文件。你想從文本文件的末尾刪除多餘的空白行嗎? – 2010-07-15 21:07:31
@Charles:什麼?由於最後一行不是以換行符結束,它不是「嚴格」的文本文件?換行符是行*分隔符*。這不是一段結束句子或分號來結束C++語句的時期。 – 2010-07-15 21:40:54
@Mike Daniels:是的,儘管它的名字是換行符,但是不是分隔符。這是K&R公約在文本流中的使用,並且是現行的C標準,並且歷來一直是舊系統中的情況。想想基於行的編輯器,基於unix行的工具等。他們總是用換行符終止最後一行(像其他行一樣)。 – 2010-07-15 22:08:59