我分别在windows和Linux平台运行了代码
Windows结果是0,19。因为Windows平台接口设计的fopen以a方式打开文件以后指针此时还是在0的位置,当写入的时候才会把指针指向文件结尾,所以第一次是0,第二次就到了文件结尾,因为有\n换行字符,所以在Windows平台下会是两个字符的大小,第二次输出就是19。
Linux平台结果是6,18。在Linux平台下,接口设计的比较合理,第一次是6,第二次是18。因为,换行\n在Linux平台只占一个字符
至于他的答案0,11。感觉应该有问题
linux下,sample后边一个换行,输入之后也有一个换行,所以是7和19
int main()
{
FILE *fp;
long position;
fp=fopen("1.txt","a");
position=ftell(fp);
printf("position=%ld\n",position);
fprintf(fp,"sample data\n");
position=ftell(fp);
printf("position=%ld\n",position);
fclose(fp);
return 0;
}
结果是7,19