复制二进制文件的内容

Gan*_*Gan 2 c copying filehandle

我正在设计一个图像解码器,作为第一步,我试图复制使用cie打开文件,并将其内容写入新文件.下面是我使用的代码.

while((c=getc(fp))!=EOF)
  fprintf(fp1,"%c",c);
Run Code Online (Sandbox Code Playgroud)

其中fp是源文件,fp1是目标文件.程序执行时没有任何错误,但图像文件(".bmp")未正确复制.我观察到复制文件的大小较小,只有20%的图像可见,其他都是黑色.当我尝试使用简单的文本文件时,副本已完成.

你知道问题是什么吗?

unw*_*ind 9

确保变量的类型cint,没有 char.换句话说,发布更多代码.

这是因为EOF常量的值通常为-1,如果您将字符读作char-sized值,则每个字节都0xff将显示为EOF常量.随着额外的位int; 有两个分开的空间.