注册 登录
编程论坛 C语言论坛

为什么我使用fread函数读取文件,一直失败

a451410 发布于 7 天前 07:12, 68 次点击
返回来的值和读取次数对不上,
我尝试了一次读一个字节,读取文件大小次,
也尝试了一次读取文件大小个字节,读一次,都不行.如下图
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
2 回复
#2
a4514107 天前 07:26
问题已解决,原因放这,后来者注意.
在打开文件获取文件指针时,要用 rb ,如果用 r 的话,会读取不完整,
具体不清楚是不是因为某个字节会被判断成结束符,或者用 r 会有长度上的限制,
有时间可以测试下.
#3
rjsp7 天前 08:46
所以,你为什么不肯贴代码呢?没代码的情况下,谁会想到你用的是"r"而非"rb"呢?
另外,即使用"rb",size_t n = fread( void* buffer, size_t size, size_t count, FILE* stream ) 当 n != count 时也不一定是错误(需要通过feof和ferror来判断)

提问,最好提供 完整(别人拷贝粘贴就能运行)最简(不包含与问题不相干的代码) 的代码。
1