【发布时间】:2017-03-29 08:38:28
【问题描述】:
我打开了一个(文本)文件,如下所示:File *fp = fopen("findPattern2.txt", "w+"); 我在其中写入了文本。我在那里的最后一个字符是,。现在我想使用退格键删除该字符。我已经阅读了here 的答案,即 BACKSPACE 只会移动光标,然后我必须通过在它上面写来覆盖该字符,这就是我所做的。所以我做了fprintf(fp, "\b \b") 以完全擦除,,但这是文件之后显示的内容:,BS BS。所有这些都与终端一起工作。为什么不用文件?
据我所知,对文件执行此操作的唯一方法是,如果我对其进行内存映射,编辑其内容,将它们复制到新文件并删除旧文件。
【问题讨论】:
-
您是否尝试过使用
fseek或fsetpos? -
我问是因为问题说 “据我所知,对文件执行此操作的唯一方法是,如果我对其进行内存映射,编辑其内容,将它们复制到新文件并删除旧的。”。这句话听起来像是您想要解决方案,但您的评论表明您只需要解释。您应该edit您的问题,以明确您对答案的期望。