c语言fseek问题

使用fseek去读一个BIN文件,无法seek,非常困惑,首先路径是正确的,已经检测很多遍了。fseek(“我的BIN”,10,0);fseek返回为0,接着读buffe... 使用fseek去读一个BIN文件,无法seek,非常困惑,首先路径是正确的,已经检测很多遍了。
fseek(“我的BIN”, 10 , 0);
fseek返回为0,接着读buffer也读不出来
这绝对不是一个低级问题,我检查很多遍,其它BIN文件就可以fseek 10bytes 然后读数据,BIN的数据我看过了,丛10bytes 后的数据 16 进制是正确的。
展开
 我来答
newerplayer123
2012-10-26 · TA获得超过489个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:238万
展开全部
我前几天也碰到fseek问题,体会颇深。
几点建议:
1、你打开的方式是什么?比如r还是rb?这两者差别特别大。
2、暂且不论r或rb,你这个文件从开头到10的位置是什么字符,空格?空行?ASCII字符?或者其他?建议找个可以查看16进制的软件打开看看,比如Ultraedit。然后再觉得偏移量是多少。
3、由于文件需要打开才能操作,检查一下路径和函数使用问题。如果是当前目录,那直接fp=fopen("我的BIN","rb")或者 fp=fopen("我的BIN","r"),再fseek(fp,10,0)。如果不是当前目录,记得目录符号"\"在C语言里头需要使用转义字符才能实现,也就是"\\"才能实现"\",比如fp=fopen("c:\\我的BIN","rb")。

基本上以上三点可以解决fseek读不出内容的问题。
沧海雄风2009
推荐于2018-05-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2753万
展开全部
int fseek( FILE *stream, long offset, int origin );
  第一个参数stream为文件指针
  第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移
  第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
  SEEK_SET: 文件开头
  SEEK_CUR: 当前位置
  SEEK_END: 文件结尾
  其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.
  简言之:
  fseek(fp,100L,0);把文件内部指针移动到离文件开头100字节处;
  fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处;
  fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
4444yq
2012-10-26
知道答主
回答量:12
采纳率:0%
帮助的人:7.1万
展开全部
是不是路径带中文的原因?
追问
没有带中文,路径为C:/XXX.BIN
追答
fseek(“我的BIN”, 10 , 0);

我也不怎么会用,“我的BIN” 当前的目录下的文件 带中文
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式