其他分享
首页 > 其他分享> > 初学C,请解惑

初学C,请解惑

作者:互联网

```C #include FILE* fp; char ch; fp = fopen("mytest", "w+"); fprintf(fp, "abcdefg"); fseek(fp, 0L, SEEK_SET); ch = getc(fp); printf("%c\n", ch); // #1、ch = 'a'; fseek(fp, 1L, SEEK_SET); ch = getc(fp); printf("%c\n", ch); // #2、ch = 'b'; fseek(fp, 0L, SEEK_CUR); ch = getc(fp); printf("%c\n", ch); // #3、ch = 'c'; fseek(fp, 0L, SEEK_CUR); ch = getc(fp); printf("%c\n", ch); // #4、ch = 'd'; printf("%ld\n", ftell(fp)); //输出结果为 4 return 0; ``` 以上代码, 第#2条语句,将fp定位至文件起始向后偏移一个字节的位置,所以fp应该是指向字符b吧? 第#3、#4输出不是很明白,fseek(fp, 0L, SEEK_CUR)不是应该将fp指针定位到当前位置吗?为什么输出每次都会向后移动1个字节啊? 是我理解有问题,还是代码有问题?

标签:fp,ch,fseek,初学,printf,解惑,SEEK,0L
来源: https://blog.51cto.com/u_15058552/2900336