fseek函数的应用

#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){FILE*in;in=fopen("f:\\in... #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
FILE *in;
in=fopen("f:\\intfile.dat","w");
if (in==NULL){
printf("open file error!\n");
exit(0);
}
int a,b,x,y,i=0;
srand((unsigned)time(NULL));
for(i=0;i<1000;i++){
x=rand()%100;
fprintf(in,"%8d ",x);
}
fclose(in);
in=fopen("f:\\intfile.dat","r");
if (in==NULL){
printf("open file error!\n");
exit(0);
}
while(!feof(in)) {
if (fscanf(in, "%d",&a)!=1)
break;
printf("%8d",a);
}
fclose(in);
in=fopen("f:\\intfile.dat","r");
if (in==NULL){
printf("open file error!\n");
exit(0);
}
fseek(in,?,0);
fscanf(in,"%8d",&y);
printf("%8d",y);
system("pause");
return 0;
}
在这个程序的最后一点 我要用fseek函数 用fseek函数对文件指针进行定位,仅读取需要的数据。例如,分别将文件指针定位到第5个整数、第10个整数,读取这两个整数并显示;分别将文件指针定位到倒数第5个整数、倒数第10个整数,读取这两个整数并显示。那我的偏移量应该如何做
在最后打开文件的时候 用的是rb
展开
 我来答
kaixingui2012
推荐于2016-06-29 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6206万
展开全部
一、根据你写入的方法可知,每个数都会占8个字节( fprintf(in,"%8d ",x); )
fseek( in , (-1)*8 , SEEK_END); 这时,就会移动到倒数第一个数的开始位置
fseek( in , (-2)*8 , SEEK_END); 这时,就会移动到倒数第二个数的开始位置
。。。
可知:
fseek( in , 8*(-n) , SEEK_END ); 这时,就会移动到倒数第n个数的开始位置

fseek( in , 8*(-1) , SEEK_CUR ); 从当前位置向前移动一个数
。。。
可知:
fseek( in , 8*(-n) , SEEK_CUR ); 从当前位置向前移n一个数

因此:
fseek( in , 8*(-5) , SEEK_END );
fscanf(in, "%d",&a);
printf("%8d",a);
fseek( in , (-5)*8 , SEEK_CUR ); //再向前移动5个
fscanf(in, "%d",&a);
printf("%8d",a);
可实现你的想法
追问
高人  你还在不 能不能留个联系方式  我现在要学习C语言  能不能给偶尔指点下
百度网友65e669b
2011-10-12 · TA获得超过1946个赞
知道小有建树答主
回答量:1366
采纳率:0%
帮助的人:828万
展开全部
你能知道整体的多少个整数吗? 知道倒数第5个整数、倒数第10个整数,正数的时候是多少吗?
问题解决了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式