如何使用fseek和fwrite将文本插入文件

时间:2013-12-14 09:49:59

标签: c++ fseek

fseek一起使用时,如何使fwrite不会覆盖指定位置的内容?

我正在用

打开一个文件
file = fopen(filename, "r+");

然后使用

fseek (file, pos, SEEK_SET);

使用

转到我需要的位置
fwrite(text, 1, text_size, file);

写入数据。

示例:

说,我想在第3位添加'7':

abcdef

我希望这是

abc7def

2 个答案:

答案 0 :(得分:0)

Fseek不会覆盖任何东西。如果你在fseek之后使用fwrite,fputs,fputc或类似的函数,你可以覆盖你所寻找的位置。

答案 1 :(得分:0)

您无法插入文件。实现这一目标的唯一方法是将文件的其余部分保存到某处,编写新内容,然后将文件的其余部分附加到保存它的位置。但是,您必须在要插入的内容后重写文件的整个部分。