Я пытаюсь записать 4 unsigned short int
числа, представленные в шестнадцатеричном виде, в двоичный файл.
Я продолжаю получать много мусора в дополнение к числам, которые я пишу, и я не конечно почему. Я предполагаю, что при переводе из unsigned short int
в двоичный файл в мой файл записывается мусор.
Моя функция записи в мой двоичный файл:
int write_file (char* name, unsigned short int array[x] ){
FILE *fptr;
fptr = fopen(name, "wb");
if(fptr==NULL)
{
fclose(fptr);
return (0);
}
unsigned short int code = 0xABCD;
const void *ptr = &code;
fwrite(ptr, sizeof(ptr), 1, fptr);
unsigned short int code2 = 0x0000;
const void *ptr2 = &code2;
fwrite(ptr2, sizeof(ptr2), 1, fptr);
unsigned short int code3 = 0x0001;
const void *ptr3 = &code3;
fwrite(ptr3, sizeof(ptr3), 1, fptr);
unsigned short int code4 = 0x1101;
const void *ptr4 = &code4;
fwrite(ptr4, sizeof(ptr4), 1, fptr);
return (0);
}
В идеале двоичный файл будет интерпретироваться как:
ABCD 0000 0001 1101
Но я получаю это вместо:
abcd f250 0190 0000 0000 eeb6 1915 7ffd
0001 eea6 1915 7ffd 1101 ee96 1915 7ffd