C语言中,文件指针中隐含的位置指针是怎么回事?

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:10:23
在对文件进行读操作并显示出来时,常用“char c=fgetc(fp);while(c!=EOF){putchar(c);c=fgetc(fp);}”,我想问的是:为什么读了一个字符后,再读时就读的是下一个字符啊,文件指针内部似乎隐含着一个位置指针,这个位置指针是怎么实现向下一位移动的啊,我们怎么运用这个位置指针?谢谢有识之士……

文件位置指针指向位置可以用fgetpos 获得
int fgetpos ( FILE * stream, fpos_t * position );

文件开始位置在
fseek ( fp , 0 , SEEK_SET );
文件终了位置在
fseek ( fp , 0 , SEEK_END );

文件每读一次,要计算 sizeof(读了的)字节数

自己实现移动位置,可以用:
fseek ( fp , 1234L , SEEK_SET );
1234 是移动到从文件开始处起算1234个字节处,你可以自己填写要移到的位置。

也可以用 fsetpos 拨动到需要的位置。

他怎么移,用ftell或fgetpos查看,
读了一些(不一定是一个)字符后,再读时就读的是上次读的最后一个字符的下一个字符.

fgetc()函数定义中,读取一位,指针会自动移动到下一位。