我有一个文本文件,其中每一行都由" \ n"终止。像这样
0000
0000
0000
0000
现在,文件最初像上面一样启动,但是一行可以用另一行可变长度覆盖。我正在使用fseek()
来设置流的位置指示器。我移动到一行并用例如0000
代替1111
没有问题。
现在假设我想用1111 1111
替换第一行。我做了以下
char *str = "1111 1111\n";
fwrite(str, 1, strlen(str), file);
这样就删除第3行中的第2行和第1个字节
1111 1111
000
0000
这是什么原因?
答案 0 :(得分:1)
如果您认为您的文件如下: " 0000 \ N0000 \ N0000 \ N0000 \ n"
更容易理解,当你覆盖第一行时,你真的会覆盖前n个字符。 这就是你的第二行消失的原因。