爱狗的贰狗子 2016-05-20 11:37 采纳率: 37.5%
浏览 1458
已采纳

读取文件时使用fseek遇到一些问题,求帮助。

#include
#include
int main(int argc, char** argv) {
int i=0,j=0;
long end=0;
FILE *fp;
unsigned short int idata[10];

if(fp!=NULL){
fp=fopen("D:\3","rb");//打开文件

for(j=0;j<2;j++){
fseek(fp,end,SEEK_SET);//每次读取前指定指针位置
end=end+10;//每次将指针向后移动10
fread(idata,2,10,fp);//读取数据储存在iadata[]中

for(i=0;i<10;i++){
printf("%d\t%d\n",idata[i],i);} //输出读取的数据
}
}
fclose(fp);
return 0;
}

读取数据时指针虽然移动了,但是总会出现一些数据重复,比如在前20个数据中,前10个数据正确,但第10-15个数据会和6-10重复,不知道什么原因,求原因及解决方法。

  • 写回答

1条回答 默认 最新

  • joaidgsd 2016-05-20 11:48
    关注

    将end每次加20,你一次读了10个元素,每个元素是2个字节,也就是20个字节,而你定位的时候你是定位在开始位置向后偏移10个字节处

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)