Spec-Zone.ru › C++

Ввод-вывод файлов в стиле C

Подмножество ввода-вывода C в стандартной библиотеке C++ реализует операции ввода-вывода потоков в стиле C. Заголовок <cstdio> предоставляет поддержку общих файловых операций и функции для ввода-вывода узких и многобайтовых символов, а заголовок <cwchar> предоставляет функции для ввода-вывода широких символов.

Потоки C обозначаются объектами типа std::FILE, доступ к которым и управление которыми возможны только через указатели типа std::FILE*. Каждый поток C связан с внешним физическим устройством (файлом, стандартным потоком ввода, принтером, последовательным портом и т. д.).

Типы

Определено в заголовке <cstdio>
FILE
тип объекта, способного хранить всю информацию, необходимую для управления потоком ввода-вывода C
(typedef)
fpos_t
полный тип объекта, не являющегося массивом и способного однозначно задавать позицию в файле, включая состояние разбора многобайтовой последовательности
(typedef)

Предопределённые стандартные потоки

Определено в заголовке <cstdio>
stdinstdoutstderr
выражение типа FILE*, связанное с потоком ввода
выражение типа FILE*, связанное с потоком вывода
выражение типа FILE*, связанное с потоком вывода ошибок
(макроконстанта)

Функции

Определено в заголовке <cstdio>
Доступ к файлам
fopen
открывает файл
(функция)
freopen
открывает существующий поток под другим именем
(функция)
fclose
закрывает файл
(функция)
fflush
синхронизирует выходной поток с фактическим файлом
(функция)
fwide
переключает файловый поток между вводом-выводом широких и узких символов
(функция)
setbuf
задаёт буфер для файлового потока
(функция)
setvbuf
задаёт буфер и его размер для файлового потока
(функция)
Прямой ввод-вывод
fread
читает данные из файла
(функция)
fwrite
записывает данные в файл
(функция)
Неформатированный ввод-вывод
Байт/многобайтовый символ
fgetcgetc
получает символ из файлового потока
(функция)
fgets
получает строку символов из файлового потока
(функция)
fputcputc
записывает символ в файловый поток
(функция)
fputs
записывает строку символов в файловый поток
(функция)
getchar
читает символ из stdin
(функция)
gets
(устарела в C++11)(удалена в C++14)
читает строку символов из stdin
(функция)
putchar
записывает символ в stdout
(функция)
puts
записывает строку символов в stdout
(функция)
ungetc
возвращает символ в файловый поток
(функция)
Широкий символ
fgetwcgetwc
получает широкий символ из файлового потока
(функция)
fgetws
получает широкую строку из файлового потока
(функция)
fputwcputwc
записывает широкий символ в файловый поток
(функция)
fputws
записывает широкую строку в файловый поток
(функция)
getwchar
читает широкий символ из stdin
(функция)
putwchar
записывает широкий символ в stdout
(функция)
ungetwc
возвращает широкий символ в файловый поток
(функция)
Форматированный ввод-вывод
Байт/многобайтовый символ
scanffscanfsscanf
читает форматированный ввод из stdin, файлового потока или буфера
(функция)
vscanfvfscanfvsscanf
(C++11)(C++11)(C++11)
читает форматированный ввод из stdin, файлового потока или буфера
с использованием списка переменного числа аргументов
(функция)
printffprintfsprintfsnprintf
(C++11)
выводит форматированные данные в stdout, файловый поток или буфер
(функция)
vprintfvfprintfvsprintfvsnprintf
(C++11)
выводит форматированные данные в stdout, файловый поток или буфер
с использованием списка переменного числа аргументов
(функция)
Широкий символ
wscanffwscanfswscanf
читает форматированный ввод широких символов из stdin, файлового потока или буфера
(функция)
vwscanfvfwscanfvswscanf
(C++11)(C++11)(C++11)
читает форматированный ввод широких символов из stdin, файлового потока
или буфера с использованием списка переменного числа аргументов
(функция)
wprintffwprintfswprintf
выводит форматированные данные широких символов в stdout, файловый поток или буфер
(функция)
vwprintfvfwprintfvswprintf
выводит форматированные данные широких символов в stdout, файловый поток
или буфер с использованием списка переменного числа аргументов
(функция)
Позиционирование в файле
ftell
возвращает текущий указатель позиции в файле
(функция)
fgetpos
получает указатель позиции в файле
(функция)
fseek
перемещает указатель позиции в файле в заданное место
(функция)
fsetpos
перемещает указатель позиции в файле в заданное место
(функция)
rewind
перемещает указатель позиции в начало файла
(функция)
Обработка ошибок
clearerr
сбрасывает признаки ошибок
(функция)
feof
проверяет достижение конца файла
(функция)
ferror
проверяет наличие ошибки файла
(функция)
perror
выводит строку символов, соответствующую текущей ошибке, в stderr
(функция)
Операции с файлами
remove
удаляет файл
(функция)
rename
переименовывает файл
(функция)
tmpfile
создаёт и открывает временный файл, автоматически удаляемый при закрытии
(функция)
tmpnam
возвращает уникальное имя файла
(функция)

Макроконстанты

Определено в заголовке <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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API