什么模式指针是什么模式,'insert'
或overwrite
?
因为我是C中file pointer
的新手,所以也许我的问题非常愚蠢。如果有人有这种感觉,我很抱歉。
如果我想insert some character
存在文件但又不丢失此文件中的任何字符,我该怎么办。
答案 0 :(得分:3)
我知道没有支持插入模式的文件系统。
写入文件流的C语义是:
"w"
。成功fopen()
后,当前文件内容将丢失。"r+"
的文件内容。只有明确写入文件的字节才会覆盖现有内容,其余内容不变。超出文件末尾的写入将扩展其大小,就像追加模式一样。"a"
的文件。每个写操作都发生在文件末尾。请注意"w"
和"a"
也会创建文件,因为它不存在。
为了在现有文件的中间插入内容,您必须将内容复制到新文件,将新内容写入适当的位置。关闭两个文件并删除旧文件后,您可以将新文件重命名为旧文件。
答案 1 :(得分:1)
取决于你如何打开它:
追加:
fopen("myfile.txt", "a");
写(覆盖):
fopen("myfile.txt", "w");