tags:

views:

69

answers:

2

Dear All

I want to write data into the file in binary form.

I was trying using the mentioned below

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);

I am able to get data which is strored at pOutputImg but not in binary form.

Can anyone guide me the correct step..

Thanks in advance

+7  A: 

Replace fprintf() with fwrite().

Ex:

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

The whole purpose of fprintf() is to format binary data as readable ascii ... the exact opposite of what you want. fwrite() is for directly writing binary data.

@dkantowitz: It works! Thanks
Abhi
+2  A: 

If this is a pixmap of rgb triplets, you can write the binary data with one line:

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