As with your other post you have SIZE and COUNT the wrong way round. Read the documentation for fread() and fwrite(); the order is buffer, SIZE (not count), COUNT (not size), stream. Your code uses parameters buffer, count (WRONG), size (WRONG), stream.

I'm not sure if that is the cause of the problem, if fread just reads size*count bytes and dumps it at the pointer then that shouldn't make any difference. However it may align the records to a 4-byte address, in which case you'll get 4x as much data as you want and each byte will be separated by 3 padding bytes (which still doesn't explain where the 0x20 comes from in your previous post, unless of course 0x20 is the padding byte).

Also, rather than posting virtually unreadable images of the error/output, it looks like it's in a DOS box so just use copy and paste to transfer the text content directly. System menu - Edit - Mark. Also useful is System menu - Properties - Options tab - QuickEdit mode which allows you to click and drag to make with the mouse rather than having to use the menu. (I also find other settings in that and other tabs useful, specifically Insert mode, buffer size(80*5000), window size(80*50), and you can set the values you like as defaults with System menu - Defaults).