gpt4 book ai didi

c - 为什么 BACKSPACE (\b) 不能按预期处理文件?

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:17 26 4
gpt4 key购买 nike

我打开了一个(文本)文件,如下所示:File *fp = fopen("findPattern2.txt", "w+"); 我在其中写入了文本。我在那里的最后一个字符是 ,。现在我想使用退格键删除那个字符。我已经阅读了答案 here BACKSPACE 只会移动光标,然后我必须通过在其上书写来覆盖该字符,这就是我所做的。所以我做了 fprintf(fp, "\b\b") 来完全删除 ,,但文件后来显示的是:,BS BS 。所有这些都与终端一起工作。为什么不用文件?

据我所知,对文件执行此操作的唯一方法是如果我对其进行内存映射,编辑其内容,将它们复制到新文件并删除旧文件。

最佳答案

文件只是字节的集合,当程序读取这些字节时,会产生(可能)有意义的结果,例如图片或视频或其他任何内容。除非程序知道退格字符应该删除前面的字符,否则它不会做任何事情。

您的终端是一个以这种方式编写的程序,可以对退格键等特殊字符使用react,并且知道在收到字符时该怎么做。

关于c - 为什么 BACKSPACE (\b) 不能按预期处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com