我打開了一個(文本)文件,如下所示:File *fp = fopen("findPattern2.txt", "w+");
其中我寫了文本。我在那裏的最後一個字符是,
。現在我想使用退格刪除那個角色。我已經閱讀了回答here BACKSPACE只會移動光標,然後我不得不通過寫在它上面覆蓋該字符,這就是我所做的。所以我做了fprintf(fp, "\b \b")
以完全擦除,
,但是這是文件之後顯示的內容:,BS BS
。所有這些都與終端一起工作。爲什麼不用一個文件?爲什麼BACKSPACE( b)不能像文件那樣按預期工作?
從我收集的唯一方法來做到這一點的文件將是如果我內存映射它,編輯其內容,將它們複製到一個新的文件,並刪除舊的。
您是否嘗試過使用'fseek'或'fsetpos'? – user694733
@ user694733是的。有用。但我的問題不在於此。 –
我問,因爲問題說*「從我收集的唯一方法來做到這一點的文件將是如果我內存映射它,編輯其內容,將它們複製到一個新的文件,並刪除舊的。」*。這句話使得它聽起來像你想要的解決方案,但你的評論表明你只需要解釋。你應該[編輯]你的問題,明確你對答案的期望。 – user694733