**Q:**

Hi!

I created an array called buff_ptr[MAX_SIZE] that is initially filled with

all zeros.

I fread all of the data from a binary file and put it in the buff_ptr[].

Now I want to write all of the data with about 50 zeros between the data.

So, the outfile should look like this:

- 1st half of data

- 50 zeros

- 2nd half of data

I have written the 1st half of the data using the following:

fwrite(&buff_ptr[i], 1, 1, out_file_stream)

How do I go about writing 50 zeros? Note: When writing 50 zeros, isn't the

file ptr moving; thus the file ptr to pointing somewhere in the 2nd half

of the data. How do I go to the start of the 2nd half of data and write

the 2nd half of the data out after the zeros.

Hope I explained it clearly!

thanks, jc

**A:**

First of all

fwrite(&buff_ptr[i], 1, 1, out_file_stream)

could be written as

fwrite(buff_ptr+i, 1, 1, out_file_stream)

But why do it in a loop instead of

fwrite(buff_ptr, 1, NumberOfBytes, out_file_stream)

??

>>>

Note: When writing 50 zeros, isn't the file ptr moving; thus the file ptr

to pointing somewhere in the 2nd half of the data.

<<<

I do not get the point. When you write 50 zero characters to the file then

the filepointer is advancing 50 places ahead. For example:

char zeros[50];

memset(zeros,50,0);

fwrite(zeros,1,50,out_file_stream);

writes out 50 zero characters (may be memset args I mixed up, see man

page). After that

fwrite(buff_ptr, 1, NumberOfBytesOfSecondHalf, out_file_stream)

should just work fine.

regards,

Peter

[ back to toc ]