该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
高手们告戒说,fseek()定位文件指针只能用于二进制文件,文本文件要计算移动位数,易出差错,
小弟在学习中尝试将fseek()用于文本文件,一点心得,发出来共享!
先在G盘根目录新建一空的文本文件:1.txt,再写代码实现如下功能:
先向文件中格式化写入一行乘式,再用fseek()定位读取。
给出乘式如下,方便对照,注意中间的空格数量:
3*1=3 4*2=8 5*3=15 6*4=24 7*5=35 8*6=48 9*7=63 10*8=80 11*9=99
我的代码如下:
include
main()
{
FILE *fp;
int i=3,j,a[9];
fp=fopen("g:/1.txt","w");
for(j=1;j<10;j++)
{
fprintf(fp,"%d*%d=%-5d",i,j,i*j); //用"%-5"对齐写入乘积
i++;
}
fclose(fp);
fp=fopen("g:/1.txt","r");
fseek(fp,4L,0); //每次取值后指针都自动后移一位,碰到大于一位的数,取值时一下取走,