fread如何判断读到了文件的末尾?
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
fread如何判断读到了文件的末尾?
有一个问题就是
假若我创建一个文件file1,想将另一个已经存在的文件file2内容复制到file1当中,
用fopen、fwrite和fread三个函数可以搞定,
先打开file2,对她进行读fread,读一段然后打开file1,用fwrite写入file1
如此循环直到读完、写完为止
问题是如何知道fread读到了文件的末尾了那?
正在焦急等待高手指导
假若我创建一个文件file1,想将另一个已经存在的文件file2内容复制到file1当中,
用fopen、fwrite和fread三个函数可以搞定,
先打开file2,对她进行读fread,读一段然后打开file1,用fwrite写入file1
如此循环直到读完、写完为止
问题是如何知道fread读到了文件的末尾了那?
正在焦急等待高手指导
- hellojinjie
- 帖子: 1150
- 注册时间: 2007-09-14 21:03
- 来自: 浙江
Re: fread如何判断读到了文件的末尾?
代码: 全选
man fread
代码: 全选
RETURN VALUE
fread() and fwrite() return the number of items successfully read or
written (i.e., not the number of characters). If an error occurs, or
the end-of-file is reached, the return value is a short item count (or
zero).
fread() does not distinguish between end-of-file and error, and
callers must use feof(3) and ferror(3) to determine which occurred.
代码: 全选
while (feof(fp) == 0)
{
fread(....);
fwrite(...);
}
Say hello to everyday!
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: fread如何判断读到了文件的末尾?
hellojinjie,
o,我在windows下用的忘了还有ubuntu的man啊,谢谢提醒
最后说的是不是用
while (feof(fp) != 0)
{
fread(....);
fwrite(...);
}
o,我在windows下用的忘了还有ubuntu的man啊,谢谢提醒
最后说的是不是用
while (feof(fp) != 0)
{
fread(....);
fwrite(...);
}
- HuntXu
- 帖子: 5776
- 注册时间: 2007-09-29 3:09
- hellojinjie
- 帖子: 1150
- 注册时间: 2007-09-14 21:03
- 来自: 浙江
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: fread如何判断读到了文件的末尾?
用while(feof(fp)!=EOF)
试试不行
用while(feof(fp)==0)或者while(!feof(fp))都可以
feof失败返回0,所以不到末尾一直返回0,直到到了末尾返回1
试试不行
用while(feof(fp)==0)或者while(!feof(fp))都可以
feof失败返回0,所以不到末尾一直返回0,直到到了末尾返回1
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: fread如何判断读到了文件的末尾?
hellojinjie,
你推荐的线程连接我一看就头疼,没有头绪,
刚开始用fopen的时候有fopen,open,还有CreateFile都可以创建文件,最后说是fopen还通用
用线程的话也有几种选择,_BeginThread,Creatthread 等
这两种那个还好用啊,最想用的是pthread_create()
在linux下用的而挺好,但是在vc下无法包含pthread.h头文件,
郁闷,给点建议(主要是关于线程的使用)
你推荐的线程连接我一看就头疼,没有头绪,
刚开始用fopen的时候有fopen,open,还有CreateFile都可以创建文件,最后说是fopen还通用
用线程的话也有几种选择,_BeginThread,Creatthread 等
这两种那个还好用啊,最想用的是pthread_create()
在linux下用的而挺好,但是在vc下无法包含pthread.h头文件,
郁闷,给点建议(主要是关于线程的使用)
- hellojinjie
- 帖子: 1150
- 注册时间: 2007-09-14 21:03
- 来自: 浙江
Re: fread如何判断读到了文件的末尾?
pthread是linux下用clone系统调用实现的线程库,在win下当然不能直接拿来用了.
你说的好像有点乱啊,win下有自己的线程库,这个如果只是看论坛里的几篇帖子恐怕是学不透的吧,还是弄本书看看吧
你说的好像有点乱啊,win下有自己的线程库,这个如果只是看论坛里的几篇帖子恐怕是学不透的吧,还是弄本书看看吧
Say hello to everyday!
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: fread如何判断读到了文件的末尾?
hellojinjie,
在windows下用线程的话,是不是有几种选择,_BeginThread,Creatthread 等
我确实得找本书看看,对于_BeginThread和Creatthread 两者之间有没有 可取舍的
或者说你平时用线程的话用那种定义格式的,我好有个方向
在windows下用线程的话,是不是有几种选择,_BeginThread,Creatthread 等
我确实得找本书看看,对于_BeginThread和Creatthread 两者之间有没有 可取舍的
或者说你平时用线程的话用那种定义格式的,我好有个方向
-
- 帖子: 338
- 注册时间: 2008-05-24 1:24
Re: fread如何判断读到了文件的末尾?
-1 也许是 EOF ,也许不是,看具体实现,所以建议大家用宏(例如 EOF)而不是数字
另外,对标准输入函数,返回 EOF 可能是由读到文件尾引起或者读错误引起,所以用 EOF 有某些情况下不够准确,比较好的方法是用 feof() 函数判断
另外,对标准输入函数,返回 EOF 可能是由读到文件尾引起或者读错误引起,所以用 EOF 有某些情况下不够准确,比较好的方法是用 feof() 函数判断
如果努力的目的是为了超越他人,那么我们永远成功不了
大道是平的,我们该做的是让自己快乐,同时带给他人快乐
好好涵养自己的性格
才华是刀刃,辛苦是磨刀石
多食果蔬,健康长寿;少吃不吃鱼肉,珍爱它类生命,远离自身疾病
大道是平的,我们该做的是让自己快乐,同时带给他人快乐
好好涵养自己的性格
才华是刀刃,辛苦是磨刀石
多食果蔬,健康长寿;少吃不吃鱼肉,珍爱它类生命,远离自身疾病
-
- 帖子: 338
- 注册时间: 2008-05-24 1:24
Re: fread如何判断读到了文件的末尾?
楼主最近问题不少,买一本 《C Primer Plus 中文版》,可解心中之惑 :)
如果努力的目的是为了超越他人,那么我们永远成功不了
大道是平的,我们该做的是让自己快乐,同时带给他人快乐
好好涵养自己的性格
才华是刀刃,辛苦是磨刀石
多食果蔬,健康长寿;少吃不吃鱼肉,珍爱它类生命,远离自身疾病
大道是平的,我们该做的是让自己快乐,同时带给他人快乐
好好涵养自己的性格
才华是刀刃,辛苦是磨刀石
多食果蔬,健康长寿;少吃不吃鱼肉,珍爱它类生命,远离自身疾病
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: fread如何判断读到了文件的末尾?
听大侠说这话。我真是有点惭愧,手上有这本书,读的有点粗,
而且感觉老是书上写的到正真自己用的时候就配不上了,还得多读多写啊,
而且感觉老是书上写的到正真自己用的时候就配不上了,还得多读多写啊,
- kofshower
- 帖子: 1343
- 注册时间: 2007-03-13 11:23
- 联系:
Re: fread如何判断读到了文件的末尾?
windows的话不应该用pthread的线程库,也不应该用platform SDK的Creatthread API函数,用crt的那个beginthread,原因是SDK的那个没有释放线程的tls,有内存泄漏...weihua2008 写了:hellojinjie,
在windows下用线程的话,是不是有几种选择,_BeginThread,Creatthread 等
我确实得找本书看看,对于_BeginThread和Creatthread 两者之间有没有 可取舍的
或者说你平时用线程的话用那种定义格式的,我好有个方向
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/