#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *temp=fopen("e:\\temp.ini","w");
fprintf(temp,"123\n456");
fclose(temp);
temp=fopen("e:\\temp.ini","r+");
//fseek(temp,5,1);
fscanf(temp,"%*s%*c");fflush(stdin);
//printf("loc=%d",ftell(temp));system("pause");
fprintf(temp,"000");
fclose(temp);
system("start e:\\temp.ini");
return 0;
}
先建立一个temp.ini,内容是
123
456
如果用fscanf(temp,"%*s%*c");读掉123和回车,再写000,最终并没有写进去,这是为什么啊?
但要是把fscanf换成fseek(temp,5,1); ,就能写进000
可以用printf("loc=%d",ftell(temp));验证:fscanf或fseek之后,ftell(temp)的值都是5