我正在设计一个图像解码器,作为第一步,我尝试复制使用 c.即打开文件,并将其内容写入新文件。下面是我使用的代码。
while((c=getc(fp))!=EOF)
fprintf(fp1,"%c",c);
其中 fp 是源文件,fp1 是目标文件。
程序执行时没有任何错误,但图像文件(“.bmp”)未正确复制。我观察到复制的文件大小较小,只有 20% 的图像可见,其他都是黑色的。当我尝试使用简单的文本文件时,副本已完成。
你知道问题是什么吗?
确保变量的类型c
is int
, not char
。换句话说,发布更多代码。
这是因为EOF
常量通常为 -1,如果您将字符读取为char
- 大小的值,每个字节0xff
将看起来像 EOF 常量。随着额外的位int
;有空间将两者分开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)