Я пытаюсь записать целое число в двоичный файл, а затем прочитать то же самое. Однако моя программа читает не тот номер, который был написан. Что я делаю не так?
unsigned short int numToWrite = 2079;
// Write to output
FILE *write_ptr;
write_ptr = fopen("test.bin","wb"); // w for write, b for binary
printf("numToWrite: %d\n", *(&numToWrite));
fwrite(&numToWrite, sizeof(unsigned short int), 1, write_ptr); // write 10 bytes from our buffer
fclose(write_ptr);
// Read the binary file
FILE *read_ptr = fopen(filename, "rb");
if (!read_ptr) {
perror("fopen");
exit(EXIT_FAILURE);
}
unsigned short int* numToRead = malloc(sizeof (unsigned short int));
fread(numToRead, sizeof(unsigned short int), 1, read_ptr);
printf("numToRead: %d\n", *numToRead);
free(numToRead);
fclose(read_ptr);
Вывод таков:
numToWrite: 2079
numToRead: 26964
filename
не определено. Также есть несколько недекларированных функций. Пожалуйста, приведите полный пример. - person Ture Pålsson   schedule 04.04.2021