c 语言读二进制文件的问题

2014-10-27 22:50:56 +08:00
 veapon
最近在学C语言,在处理二进制的时候碰到了点问题,很无语,搜了很久,换了几种方式都不行,望高手指点下。

功能和简单,就是读一个1.jpg,然后把它到1.out.jpg里,代码如下,不知道哪里有问题...

<script src="https://gist.github.com/veapon/b3efb7b91739b112aef6.js"></script>
2274 次点击
所在节点    问与答
3 条回复
SErHo
2014-10-27 23:12:21 +08:00
把 fputs 改为 fwrite
msg7086
2014-10-27 23:16:51 +08:00
1. 最好别一次读全文。
定义一个buffer size,开一个循环,每次 bytesread = fread(buf, sizeof(char), buffer_size, fin)
然后 fwrite(buf, sizeof(char), bytesread, fout)
最后检查bytesread != buffer_size -> break

2. fopen_s是VC的东西,不是C的。

3. 发gist请加上后缀 binread[.c]。
veapon
2014-10-27 23:23:55 +08:00
哦,原来fputs是字符串,fwrite可以处理二进制的...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141959

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX