社区
C语言
帖子详情
feof()的问题。
look01
2004-12-01 07:28:46
用来测试0字节文件并不是返回TURE,而是返回-1,WHY?
...全文
85
9
打赏
收藏
feof()的问题。
用来测试0字节文件并不是返回TURE,而是返回-1,WHY?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
look01
2004-12-02
打赏
举报
回复
to:niukuonan(niukuonan)
while(!feof(fp))//此时,fp才指向第一个字节
{
fputc(....);
ch=fgetc(fp);
}
循环结束,ch的值是-1,而不是文件最后一个字符?老潭书上那个复制文件的例子就会将-1也复制过去
niukuonan
2004-12-01
打赏
举报
回复
当你对一个0字节的文件进行feof(fp)时
系统成功的得到fp所指文件的指针
二进制流不等于0,所以你再怎么测feof()返回都是0
niukuonan
2004-12-01
打赏
举报
回复
这个问题我做了测试
当你刚刚打开一个文件的时候
比如说fp=fopen("in.txt","wb");
这时,fp并不指向文件的第一个字节
你可以这样
先用
char ch;
ch=fgetc(fp);//fp指向第一个字节
while(!feof(fp))//此时,fp才指向第一个字节
{
fputc(....);
ch=fgetc(fp);
}
或者用
fseek(fp,0,0);
来使fp指向第一个字节
你可以看看c的书,上面多数都用的第一种写法
yuanyou
2004-12-01
打赏
举报
回复
错了,这个宏中文件最后是用2表示的
yuanyou
2004-12-01
打赏
举报
回复
看看FILE结构体的定义也许会找的答案
在stdio.h
fseek()中定义了
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 0
也许你会发现这个宏中文件最后是用0表示的.
大概如此吧
look01
2004-12-01
打赏
举报
回复
我测试了非0字节文件,也得不到正确的结果。
snow810211
2004-12-01
打赏
举报
回复
看书上说feof一般是对二进制文件操作时候用
xzxsimon
2004-12-01
打赏
举报
回复
feof()测试文件到达文件尾时返回非零值,否则返回零值。
如果定义成signed int feof(),如果到达文件尾,或者空文件,返回1,但是由于定义的时符号型,计算结果为-1。
我的理解,仅供参考
sw_man
2004-12-01
打赏
举报
回复
我想是说明函数调用失败,文件里根本没有EOF标志,怎么会返回TURE?
f
eof
函数多读一次
问题
解决方案
详细讲解了f
eof
函数多读一次
问题
解决方案
f
eof
函数多读一次
问题
分析
f
eof
函数多读一次
问题
分析,详细讲解为什么会多读一次原因
f
eof
fp 是什么意思
介绍c++builder语言f
eof
fp 是什么意思
谭浩强书中错误
eof
和f
eof
判断文件结束有两种方法:
EOF
和f
eof
() 查看stdio.h可以看到如下定义: #define
EOF
(-1) #define _IO
EOF
0x0010 #define f
eof
(_stream) ((_stream)->_flag & _IO
EOF
) 由此可以看出,这两种方式的原理是不同的。...
php f
eof
用来识别文件末尾字符的方法
f
eof
()函数用来确定是否到达资源末尾。它在文件I/O 操作中经常使用。其形式为: int f
eof
(string resource) 实例如下: 复制代码 代码如下: <?php $fh = fopen(“/home/www/data/users.txt”, “rt”); ...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章