回答
沒有簡單的方法。你已經手動完成了。例如:
- 閱讀你想之前插入到內存塊
- 尋求着新的位置
- 寫塊你剛纔讀的新位置
- 尋求回到你想插入
- 寫入新數據。
謝謝!所以我必須使用「fopen(」1.txt「,」w「);」然後fseek? :)據我所知,對於我的問題,答案是肯定的。 – 2010-03-12 07:24:45
@Infinity:使用'fopen(「1.txt」,「r +」)'打開閱讀*和*寫作。模式'「w」覆蓋之前可能存在的任何文件,留下一個空文件。 – 2010-03-12 07:25:34
好的,謝謝:) – 2010-03-12 07:29:40
使用fseek函數將文件指針移動到文件的相應位置,然後您可以在那裏執行寫操作。但是,爲此,您應該知道從文件末尾開始有多少個字節,或者您想要寫入的首選區域的起始位置。
也謝謝你。 – 2010-03-12 07:25:01
正如其他人已經告訴過你的,你必須手動完成,並使用fseek來到你必須插入或添加字符的地方。您可以通過執行以下操作輕鬆地在中間添加新字符:
- 轉到文件的最後一個字節,並存儲文件的舊文件大小。
- 轉到你想要插入新字符的位置(說這是位置):fread(舊文件大小 - 位置)字節,並將它們存儲在緩衝區中。
- fseek再次定位。
- fwrite你的新角色。
- fwrite您先前讀取的緩衝區。
如果你想刪除中間的字符,那麼這是更棘手的。其實你不能縮短文件。你有兩種可能性:在第一個,你剛纔
- 打開文件和讀取文件跳過字符要刪除,並將它們存儲在緩衝區
- 關閉並重新打開該文件「b」,所以其內容被刪除,
- 寫入緩衝區並關閉文件。
在第二個可能性,您:
- 讀取到未來要刪除的那些的緩衝字符。
- fseek以你想刪除的字符開頭
- fwrite緩衝區。
- 修剪文件的其餘部分。
第四點是「棘手」,因爲沒有標準(便攜)的方式來做到這一點。一種可能是使用操作系統系統調用來截斷文件。另一種更簡單的可能性是在第4點將EOF寫入文件。該文件可能會大於它應該是的,但它會起作用。
非常感謝你,我想你對此有更多的瞭解。我們可以在別的地方談談這個嗎? – 2010-03-13 17:22:40
我對搜索文件中文本位置的主題感興趣。也許有一個好方法,還是我必須由charachter測試charachter? – 2010-03-13 17:27:03
在文本文件中搜索是的,基本上是逐字測試的問題。但是,這是另一個完全不同的主題:例如,您可以獲得正則表達式的幫助。 – Baltasarq 2010-03-15 09:17:39
考慮到Baltasarq發佈了什麼,我寫了以下幾行。你需要知道的位置,你要插入
long Fin;
long lSize;
fseek(fd, 0L, SEEK_END);
Fin = ftell(fd);//I get the old file size
fseek(fd, position, SEEK_SET);//you should have declared and initialized "position"
char * buffer;
lSize = Fin - position;//lenght from where you want to insert the chars and the eof
buffer = (char*) malloc(sizeof(char) * lSize);
size_t result = fread(buffer, 1, lSize, fd);//fread (Fin - position) into buffer
fseek(fd, position, SEEK_SET);//fseek to position
fputs(word, fd);//you should know what you want to write (word) and it is a char pointer
fputs(buffer, fd);//fwrite the buffer
我實際使用的代碼(一些修改後)一式三份包含每個元音,在給定的文件的話字符。
- 1. 如何刪除數據庫文件中的一些字符串
- 2. 如何在VB.net中刪除一些字符串中的數字?
- 3. 如何從bash中的字符串中刪除一些文本?
- 4. 如何刪除UNIX中某些文件中的字符?
- 5. 如何從C#字符串中刪除一些字符?
- 6. 從一組文件中刪除一些特定字符
- 7. 如何從文件中刪除「^ @」字符?
- 8. 在標題中插入和刪除字符/字
- 9. 從插入刪除某些符號
- 10. 如何刪除字符串C#之間的一些文字
- 11. 如何從一個字符串中刪除字符,除了那些在列表
- 12. 如何跟蹤HTML文件中的圖像(插入和刪除)
- 13. 如何在文本文件中插入/刪除單詞?
- 14. PHP在字符串之前和之後插入一些文本
- 15. 如何從文件中刪除一行使用awk過濾某些字符串
- 16. 解決:如何把刪除某些換行符在文件中
- 17. 如何在tkinter中插入一些指定的字符輸入小部件
- 18. XSLT如何選擇文件並從文件名中刪除某些字符?
- 19. 如何在UITableView中同時插入和刪除一行
- 20. 如何從java中的字符串中刪除一些單詞
- 21. 如何從Python中的字符串中刪除一些URL
- 22. 如何在某些位置刪除字符串中的某些字符?
- 23. 刪除某些字符在Excel 2010中
- 24. 如何刪除某些字符字符串在Excel
- 25. android如何從字符串中刪除某些文本?
- 26. 如何從BIG HTML字符串中刪除一些標籤?
- 27. 如何從字符串中刪除一些空格?
- 28. 如何從URL字符串中刪除一些參數?
- 29. 如何在Perl字符串中插入文字\ t和\ n?
- 30. JS - 在JSON文件中插入,刪除和添加數據
建議使用插入的數據創建新文件。完成後,重命名並刪除原件。 – chux 2015-02-25 19:26:18