Несколько возможных причин, по которым не удаётся корректно записать числа в файл с помощью функции fwrite:
- Отсутствие вызова fflush(). cplusplus.com qna.habr.com Функция fwrite буферизирует данные во внутреннем буфере в пространстве приложения и не вызывает системный вызов write() до вызова fflush(), fclose() или fsync(). cplusplus.com Если приложение выходит из строя до этого, операционная система не узнает о данных для записи. cplusplus.com
- Открытие файла в двоичном формате. stackoverflow.com В этом случае fwrite записывает двоичное представление числа, которое может выглядеть пустым или странным в текстовых редакторах. stackoverflow.com Чтобы записать форматированные данные, можно использовать функцию fprintf() вместо fwrite(). stackoverflow.com stackoverflow.com
Для решения проблемы рекомендуется добавить вызов fflush() после записи данных в файл. qna.habr.com Также стоит убедиться, что файл открыт в нужном формате: для записи форматированных данных его следует открывать в текстовом режиме. stackoverflow.com stackoverflow.com