Ввод-вывод файлов в стиле C
Подмножество ввода-вывода C в стандартной библиотеке C++ реализует операции ввода-вывода потоков в стиле C. Заголовок <cstdio> предоставляет поддержку общих файловых операций и функции для ввода-вывода узких и многобайтовых символов, а заголовок <cwchar> предоставляет функции для ввода-вывода широких символов.
Потоки C обозначаются объектами типа std::FILE, доступ к которым и управление которыми возможны только через указатели типа std::FILE*. Каждый поток C связан с внешним физическим устройством (файлом, стандартным потоком ввода, принтером, последовательным портом и т. д.).
Типы
Определено в заголовке <cstdio> |
|
|---|---|
| тип объекта, способного хранить всю информацию, необходимую для управления потоком ввода-вывода C (typedef) |
|
| полный тип объекта, не являющегося массивом и способного однозначно задавать позицию в файле, включая состояние разбора многобайтовой последовательности (typedef) |
|
Предопределённые стандартные потоки
Определено в заголовке <cstdio> |
|
|---|---|
| выражение типа FILE*, связанное с потоком ввода выражение типа FILE*, связанное с потоком вывода выражение типа FILE*, связанное с потоком вывода ошибок (макроконстанта) |
|
Функции
Определено в заголовке <cstdio> |
|
|---|---|
Доступ к файлам |
|
| открывает файл (функция) |
|
| открывает существующий поток под другим именем (функция) |
|
| закрывает файл (функция) |
|
| синхронизирует выходной поток с фактическим файлом (функция) |
|
| переключает файловый поток между вводом-выводом широких и узких символов (функция) |
|
| задаёт буфер для файлового потока (функция) |
|
| задаёт буфер и его размер для файлового потока (функция) |
|
Прямой ввод-вывод |
|
| читает данные из файла (функция) |
|
| записывает данные в файл (функция) |
|
Неформатированный ввод-вывод |
|
Байт/многобайтовый символ |
|
| получает символ из файлового потока (функция) |
|
| получает строку символов из файлового потока (функция) |
|
| записывает символ в файловый поток (функция) |
|
| записывает строку символов в файловый поток (функция) |
|
читает символ из stdin (функция) |
|
|
(устарела в C++11)(удалена в C++14) | читает строку символов из stdin (функция) |
записывает символ в stdout (функция) |
|
записывает строку символов в stdout (функция) |
|
| возвращает символ в файловый поток (функция) |
|
Широкий символ |
|
| получает широкий символ из файлового потока (функция) |
|
| получает широкую строку из файлового потока (функция) |
|
| записывает широкий символ в файловый поток (функция) |
|
| записывает широкую строку в файловый поток (функция) |
|
читает широкий символ из stdin (функция) |
|
записывает широкий символ в stdout (функция) |
|
| возвращает широкий символ в файловый поток (функция) |
|
Форматированный ввод-вывод |
|
Байт/многобайтовый символ |
|
читает форматированный ввод из stdin, файлового потока или буфера (функция) |
|
|
(C++11)(C++11)(C++11) | читает форматированный ввод из stdin, файлового потока или буферас использованием списка переменного числа аргументов (функция) |
|
(C++11) | выводит форматированные данные в stdout, файловый поток или буфер (функция) |
|
(C++11) | выводит форматированные данные в stdout, файловый поток или буферс использованием списка переменного числа аргументов (функция) |
Широкий символ |
|
читает форматированный ввод широких символов из stdin, файлового потока или буфера (функция) |
|
|
(C++11)(C++11)(C++11) | читает форматированный ввод широких символов из stdin, файлового потокаили буфера с использованием списка переменного числа аргументов (функция) |
выводит форматированные данные широких символов в stdout, файловый поток или буфер (функция) |
|
выводит форматированные данные широких символов в stdout, файловый потокили буфер с использованием списка переменного числа аргументов (функция) |
|
Позиционирование в файле |
|
| возвращает текущий указатель позиции в файле (функция) |
|
| получает указатель позиции в файле (функция) |
|
| перемещает указатель позиции в файле в заданное место (функция) |
|
| перемещает указатель позиции в файле в заданное место (функция) |
|
| перемещает указатель позиции в начало файла (функция) |
|
Обработка ошибок |
|
| сбрасывает признаки ошибок (функция) |
|
| проверяет достижение конца файла (функция) |
|
| проверяет наличие ошибки файла (функция) |
|
выводит строку символов, соответствующую текущей ошибке, в stderr (функция) |
|
Операции с файлами |
|
| удаляет файл (функция) |
|
| переименовывает файл (функция) |
|
| создаёт и открывает временный файл, автоматически удаляемый при закрытии (функция) |
|
| возвращает уникальное имя файла (функция) |
|
Макроконстанты
Определено в заголовке <cstdio> |
|
|---|---|
|
EOF | целочисленное константное выражение типа int с отрицательным значением (макроконстанта) |
|
FOPEN_MAX | максимальное количество файлов, которые могут быть открыты одновременно (макроконстанта) |
|
FILENAME_MAX | размер массива char, необходимого для хранения самого длинного поддерживаемого имени файла (макроконстанта) |
|
_PRINTF_NAN_LEN_MAX
(C++26) | максимальное количество символов, выводимых для любого значения NaN (возможно, с изменённым знаком) (макроконстанта) |
|
BUFSIZ | размер буфера, используемого std::setbuf (макроконстанта) |
|
_IOFBF_IOLBF_IONBF | указывает режим буферизации (полная буферизация / построчная буферизация / без буферизации), задаваемый с помощью std::setvbuf (макроконстанта) |
|
SEEK_SETSEEK_CURSEEK_END | указывает начало отсчёта смещения (начало / текущая позиция / конец), используемое std::fseek (макроконстанта) |
|
TMP_MAX | максимальное количество уникальных имён файлов, которые могут быть сгенерированы с помощью std::tmpnam (макроконстанта) |
|
L_tmpnam | размер массива char, необходимого для хранения результата std::tmpnam (макроконстанта) |
См. также
| Документация по C для раздела Ввод-вывод файлов |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/c