以二进制形式存档

时间:2010-03-28 07:40:02

标签: c file binary

我想以二进制形式将数据写入文件。

我正在尝试使用下面提到的

FILE *fp = fopen("binaryoutput.rgb888", "ab+");

for(int m=0; m<height; m++)
{
   for (int n=0; n< width; n++)        
   {                            
    temp = (pOutputImg+m*3+n*3); // here pOutputImg & temp is a pointer to a unsigned char  
    fprintf(fp,"%u",*temp);             
   }        
}
fclose(fp);

我能够获得以pOutputImg而非二进制形式的数据。

任何人都可以指导我正确的步骤..

提前致谢

2 个答案:

答案 0 :(得分:7)

用fwrite()替换fprintf()。

例如:

fwrite(temp, sizeof(*temp), 1, fp);

fprintf()的全部目的是将二进制数据格式化为可读的ascii ...与您想要的完全相反。 fwrite()用于直接写二进制数据。

答案 1 :(得分:2)

如果这是rgb三元组的像素图,你可以用一行写二进制数据:

fwrite(pOutputImg, 3, height * width, fp);