有人可以告诉我为什么文件没有改变吗?当我使用rewind
或fseek
时它是有效的,但其他情况下不行。
fgets
之后使用fputs
的标准方法是什么?文件指针在第9个位置,因此fputs
必须在其后写入,但它似乎没做任何事情。
在文件中:
abcd efgh ijkl mnor
在源代码中:
char c;
char str[15];
FILE *fp = fopen("d:\\data.txt","r+");
fgets(str, 10, fp);
// fseek(fp, 9, SEEK_SET);
// rewind(fp);
printf("%d\n", ftell(fp));
// ftel shows that it's in "9".
printf("%s", str);
fputs(str, fp);
// why its not working
fclose(fp);
fputs
和fclose
调用之间吗?也许你应该使用fflush
函数刷新文件缓冲区? - Some programmer dudefseek(fp, 0L, SEEK_CUR);
。 - krpra