我将eclipse用于c(版本:2020-03(4.15.0(Build id:20200313-1211(和MinGW(版本0.6.3-pre-20170905-1(。
在过去的几周里,我一直在玩fwrite()
,主要是创建BMP文件,没有任何奇怪的问题。
现在发生了一些非常奇怪的事情,我根本不明白:生成的文件有2个额外的字节,因此图像已损坏,无法显示。
- 我已经读取了
fwrite()
返回的值,该值等于要写入的大小(两种情况都为384( - 我检查了给
fwrite()
和内部(FILE*)->_base
的指针的数据,它们都指向一个内容正确的地址,但与生成的文件不同
当删除这2个字节时,图像是完全可读的(我使用软件HxD(。
这是生成的文件,2个字节是0D
,在两个0A 00 00 00
之前(宽度和高度(是这些额外的字节,我不知道它们来自哪里,因为它们位于哪里,它们偏移了所有其他BMP头信息并损坏了图像!
损坏的BMP文件的内容
BMP一点也不花哨,只是一个10x10px的正方形,带有灰度梯度。
提前感谢!
哇,感谢大家的快速回答!
事实上,n
已转换为rn
。将文件创建为二进制文件(fopen(<>,"wb")
(已经解决了这个问题!
谢谢tkausl和Johnny Mopp!感谢大家,你们是了不起的人!