error:fread / fwrite 返回 0 的问题
来源:互联网 发布:手机能删除淘宝评价吗 编辑:程序博客网 时间:2024/06/05 00:56
没想到不论我怎么改count的值,都不会改变它的返回值。我开始觉得是我的函数调用的不对,结果还真是函数的参数写错位置了。
fread 的函数原型是(来自MSDN):size_t fread( void *buffer, size_t size,size_t count,FILE *stream);
我们用fread读的时候,有时会把size设置为整数,比如:300。然后我们可能用一个循环来读取文件的内容:
while ((iBytesRead = fread (buf, 300, 1, fin))> 0) {
// 具体代码略
}
若有一个文件,它的内容大约为213 bytes,那么,用这个语句来读的话,就会进不到循环里面去了,因为fread返回的是实际所读取的块数!那么一个块是300 bytes,而此文件全部内容加起来也才213 bytes,小于300 bytes。也就是说,读到的数据不足一块,那么只能返回0了,于是不会进入循环~~
所以,如果想fread返回读取的具体byte数的话,应该把size 和count 的位置对调,变成这样:
while ((iBytesRead = fread (buf, 1, 300, fin))> 0) {
// 具体代码略
}
0 1
- error:fread / fwrite 返回 0 的问题
- fread / fwrite 返回 0 的问题
- 使用fwrite,fread需要注意的问题
- fread/fwrite 返回值理解
- fread fwrite 的使用
- Fread 和fwrite的参数不同,返回值不同
- fread总返回0的问题
- fopen fwrite fread 问题小记
- fread 返回值的问题
- 问题点&二进制I/O函数fread(),fwrite()的使用
- fwrite 、fread
- fread fwrite
- fread,fwrite
- fread & fwrite
- fread fwrite
- fread,fwrite
- fwrite ,fread
- fread、fwrite
- android 打包签名
- hadoop 4(作业运行机制)
- Android - View绘图原理总结
- C++学习笔记2
- AIR中不使用ANE实现IOS消息推送
- error:fread / fwrite 返回 0 的问题
- _00017 Kafka的体系结构介绍以及Kafka入门案例(初级案例+Java API的使用)
- Java 中Integer的cache
- 网络心跳包处理
- IOS 学习笔记14 内存管理(1)
- ArcGIS Engine中的重点类库介绍
- 第四章 select where过滤
- B/S结构与C/S结构的区别
- 如何利用response.addHeader()方法设置cookie