Функция fprintf не работает, но возвращает положительное число

я использую fprintf следующим образом. Все вроде бы нормально но fprintf не печатать в мой файл вообще!

fprintf(pFile, "%s\n", "print");

Что-то странное в том, что fprintf возвращается OK, это возвращается 6 в приведенном выше коде, но не печать в файл!

Файл успешно создан, но пуст.

меняя его на printf печатает и OK тоже.

0

Решение

fprintf и другие функции вывода stdio буферизуются, что означает, что вывод сначала сохраняется в памяти, а не распечатывается до следующего. При печати на экран с использованием стандартного вывода каждая новая строка очищает буфер, поэтому printf вы увидите результат немедленно, но при печати в файл буфер не будет очищен, пока вы не напишите (например) 4096 байт. Можете добавить fflush(pFile); очистить буфер, если вам по какой-то причине нужен вывод для быстрого появления в файле.

Буфер также очищается при вызове fcloseили неявное закрытие файла путем правильного выхода из программы, но если программа продолжает работать без закрытия файла или в случае сбоя, вам потребуется fflush чтобы увидеть вывод файла.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]