关于 文件位置标记 的困惑。
/* 此程序是将 file1.txt 的内容 复制到 file2.txt 中我的困惑是 :
1. 文件位置标记 是什么 ,
ps : 我原以为 fp1 就是 文件位置标记,现在发现不对。
2. feof(fp1) 与 rewind(fp1) 都改变了 文件位置标记 么?
搞不清楚 函数 内部 干了什么。
麻烦 路过的朋友 帮忙解释一下 ,多谢了。
*/
程序代码:#include<stdio.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("file1.txt","r");
fp2=fopen("file2.txt","w");
while(!feof(fp1))
{
putchar(getc(fp1));
printf("previous=%p\n",fp1); // 输出 file1 的地址 .
}
putchar('\n');
printf("current =%p\n",fp1); // 再次 输出 file1 的地址 ,发现没变 .
rewind(fp1); //
// 注意到 fp1 没变,本来想把 rewind(fp1) 这句话 去掉,
// 发现不对 , 看来 fp1 不是 文件位置标记。
//实现 复制 的部分 (需 重置 文件位置标记)。
while(!feof(fp1))
{
putc(getc(fp1),fp2);
//printf("%p\n",fp1);
}
fclose(fp1);
fclose(fp2);
return 0;
}







