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 进制是正确的。 展开
fseek(“我的BIN”, 10 , 0);
fseek返回为0,接着读buffer也读不出来
这绝对不是一个低级问题,我检查很多遍,其它BIN文件就可以fseek 10bytes 然后读数据,BIN的数据我看过了,丛10bytes 后的数据 16 进制是正确的。 展开
展开全部
我前几天也碰到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读不出内容的问题。
几点建议:
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读不出内容的问题。
展开全部
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字节处。
第一个参数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字节处。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是路径带中文的原因?
追问
没有带中文,路径为C:/XXX.BIN
追答
fseek(“我的BIN”, 10 , 0);
我也不怎么会用,“我的BIN” 当前的目录下的文件 带中文
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |