[英]How do you write to a specific line of a txt file in C?
我想覆蓋txt文件中的某一行,同時保持所有其他行不變。 有沒有一種簡單而好的方法?
基本上使用Fseek()搜索要更改的位的順序,
然后使用Fwrite()覆蓋舊文本
OBS:您需要以rw模式打開文件以覆蓋
fopen ("myfile.txt", "wr");
使用這些參考:
http://www.cplusplus.com/reference/cstdio/fwrite/
http://www.cplusplus.com/reference/cstdio/fseek/
(它說的是C ++,但可以在C上運行)
除非您要覆蓋的行的長度具有相同的字節數,否則您不能在現有文件中“插入”或“刪除”字節。 您將必須編寫一個新文件:
stdout
) 如果要覆蓋現有字節, 並且可以確定舊行和新行的長度完全相等,則可以:
rw
模式下fopen()
文件 fseek()
到舊行的字節位置(或讀入字符,直到您擊中了一些預設數量的換行符,等等—基本上,您希望將文件指針移至舊行的開頭) fwrite()
新字節超過舊行的字節 fclose()
文件指針 如果您確實需要覆蓋同一文件中的字節,並且新行的字節數少於舊行,則可以做一些技巧,用空格字符直到換行符覆蓋舊行的末尾,但是更干凈解決方案是簡單地編寫一個包含更新內容的新文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.