我想以二进制形式将数据写入文件。
我正在尝试使用下面提到的
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而非二进制形式的数据。
任何人都可以指导我正确的步骤..
提前致谢
答案 0 :(得分:7)
用fwrite()替换fprintf()。
例如:
fwrite(temp, sizeof(*temp), 1, fp);
fprintf()的全部目的是将二进制数据格式化为可读的ascii ...与您想要的完全相反。 fwrite()用于直接写二进制数据。
答案 1 :(得分:2)
如果这是rgb三元组的像素图,你可以用一行写二进制数据:
fwrite(pOutputImg, 3, height * width, fp);