我正在使用eclipse for 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一点都不花哨,只是一个10x10px的正方形,有灰度渐变。
先谢谢你了!
哇,感谢大家的快速回答!我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是,我的问题是。
确实是 \n
转为 \r\n
的问题。将文件创建为二进制文件(fopen(<>,"wb")
)已经解决了这个问题!感谢tkausl和Johnny Mopp!感谢大家,你们是了不起的人。
谢谢tkausl和Johnny Mopp!谢谢大家,你们是了不起的人。