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