[求助]请教文件读写问题,谢谢先
一个数据文件,现在想用fread进行读写,文件内是很多数据,行与行之间是回车分开的,现在想读完一行之后能够把文件指针重新指向这一行,也就是再读一次该行,试过用fseek(fid,-读出来的该行数据长度,0),想把指针重新移回该行起始处,但实际上指针移动的不对,请问如何才能实现?谢谢,请大家指教回复:(digistar)[求助]请教文件读写问题,谢谢先
fseek用错了<BR><BR>fseek(fid,-读出来的该行数据长度,0)<BR>改成<BR>fseek(fid,-读出来的该行数据长度,'cof') 首先谢谢happy教授,可现在的问题是这样:数据文件本身可能是数字类型,现在用fgets读每一行出来,将数字按照字符串读出来后,长度就发生了变化,所以不管用fseek(fid,-读出来的该行数据长度,0),还是fseek(fid,-读出来的该行数据长度,'cof'),文件指针都不能正确返回到该行的起始处,往往可能返回到了该行的中间某处。<BR>我的目的就是希望每次能够读取文件的一行数据,进行判断,如果符合某个条件的话,需要将该行重新读一次,请问还有什么好的解决方法吗?谢谢<BR>回复:(digistar)首先谢谢happy教授,可现在的问题是...
<DIV class=quote><B>以下是引用<I>digistar</I>在2006-4-3 15:07:54的发言:</B><BR>首先谢谢happy教授,可现在的问题是这样:数据文件本身可能是数字类型,现在用fgets读每一行出来,将数字按照字符串读出来后,<FONT color=#ff0000>长度就发生了变化</FONT>,所以不管用fseek(fid,-读出来的该行数据长度,0),还是fseek(fid,-读出来的该行数据长度,'cof'),文件指针都不能正确返回到该行的起始处,往往可能返回到了该行的中间某处。<BR>我的目的就是希望每次能够读取文件的一行数据,进行判断,如果符合某个条件的话,需要将该行重新读一次,请问还有什么好的解决方法吗?谢谢<BR></DIV><P>红色标记的这句不是很理解<BR><BR>最笨的办法就是把整个文件读进来,然后判断<BR>不满足条件的[]掉就行了</P> 谢谢happy教授,主要是数据文件很大,全部读进来的话操作起来会很慢,红色标记的那句话是说:当读完一行后,利用该行的数据长度,想用fseek将文件指针再返回到该行起始处,但发现利用fseek(fid,-读出来的该行数据长度,'cof')操作后,再用fgets读出的数据并不是该行的全部数据,所以指针可能是回到了该行中间某处而不是起始处。<BR>还尝试如下操作:<BR>f1=ftell(fid);<BR>data=fgets(fid);<BR>f2=ftell(fid);<BR>fseek(fid,-(f2-f1),'cof');<BR>data2=fgets(fid);<BR>但是发现data和data2也不相同。<BR>以前的操作是:<BR>data=fgets(fid);<BR>fseek(fid,-length(data),'cof');<BR>data2=fgets(fid);<BR>但是data和data2也不相同。<BR>请指教,谢谢
页:
[1]