我在编程中遇到了困难,无法让fseek()函数在我的代码中正常工作。我写的文本不从我指定的位置开始,我不知道为什么。它应该从\n处开始写入,但它只是覆盖整个文本文件。即使我用
发生了什么?为什么这个不起作用?
a
打开它,它也不会按照我通过参数命令的位置进行写入。 fclose(file);
FILE *file_a = fopen("ex6.txt", "w");
fseek(file_a, -1, SEEK_END);
puts("Write text to add:");
while((letter = getchar()) != '\n')
{
fputc(letter, file_a);
};
发生了什么?为什么这个不起作用?
0
传递给fseek。-1
则表示在末尾之前的1个字节。 - undefinedw
截断文件(如果存在),fseek()可以让你在开始往里面放东西后进行跳转。a
和a+
总是写入文件末尾。正如你所发现的,w+
保留任何现有内容,允许你进行扩展/覆盖。 - undefined