Abhineet
Abhineet

Reputation: 6617

File in binary form

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

Upvotes: 1

Views: 356

Answers (2)

dkantowitz
dkantowitz

Reputation: 1951

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.

Upvotes: 7

Marcelo Cantos
Marcelo Cantos

Reputation: 185862

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

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

Upvotes: 2

Related Questions