Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_programmirovanie_1-7.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

85. Файловый ввод-вывод. Стандартная библиотека ввода-вывода

Для осуществления операций с файлами предусмотрено три класса: ifstream, ofstream и fstream. Эти классы являются производными, соответственно, от классов istream, ostream и iostream. Поскольку эти последние классы, в свою очередь, являются производными от класса ios, классы файловых потоков наследуют все функциональные возможности своих родителей (перегруженные операции << и >> для встроенных типов, функции и флаги форматирования, манипуляторы и пр.). Для реализации файлового ввода-вывода нужно включить в программу заголовочный файл fstream.h.

Существует небольшое отличие между использованием предопределенных и файловых потоков. Файловый поток должен быть связан с файлом прежде, чем его можно будет использовать. С другой стороны, предопределенные потоки могут использоваться сразу после запуска программы, даже в конструкторах статических классов, которые выполняются даже раньше вызова функции main(). Можно позиционировать файловый поток в произвольную позицию в файле, в то время как для предопределенных потоков это обычно не имеет смысла.

Для создания файлового потока эти классы предусматривают следующие формы конструктора:

создать поток, не связывая его с файлом:

ifstream();       ofstream();       fstream();

создать поток, открыть файл и связать поток с файлом:

ifstream(const char *name, ios::openmode mode = ios::in) ;       ofstream(const char* name, ios::openmode mode=ios::out | ios::trunc);       fstream(const char * name, ios::openmode mode = ios::in | ios::out);

Чтобы открыть файл для ввода или вывода, можно использовать вторую форму нужного конструктора

fstream fs("FileName.dat");

Режимы открытия и их назначение

Режим открытия

Назначение

ios::in

Открыть файл для чтения

ios::out

Открыть файл для записи

ios::ate

Начало вывода устанавливается в конец файла

ios::app

Открыть файл для добавления в конец

ios::trunc

Усечь файл, то есть удалить его содержимое

ios::binary

Двоичный режим операций

86. Основные функции управлением вводом-выводом <cstdio>.

Функции заголовочного файла cstdio

Операции с файлами

remove

Удалить файл.

rename

Переименовать файл.

tmpfile

Создать временный файл.

tmpnam

Сгенерировать имя для файла.

Доступ к файлам

fclose

Отсоединить поток и закрыть файл.

fflush

Обнуление (сброс) потоков.

fopen

 Открыть файл.

freopen

Перенаправление потоков ввода/вывода.

setbuf

Определить строку для буферизации потока.

setvbuf

Функция изменяет буфер, который будет использоваться для операций ввода/вывода с указанным потоком.

Форматирование потоков ввода/вывода

fprinf

Записывает в указанный поток последовательность символов, предварительно отформатированных.

fscanf

prinf

scanf

sprinf

sscanf

vfprinf

vprintf

vsprinf

Символы ввода/вывода

fgetc

Возвращает символ на который ссылается внутренний индикатор позиции файла указанного потока.

fgets

Считывает символы из потока и сохраняет их в виде строки.

fputc

Записывает символ в поток и перемещает позицию индикатора положения.

fputs

Записывает строку, указанную в параметре в поток.

getc

Функция возвращает символ из потока, на который ссылается внутренний индикатор позиции файла.

getchar

Получить символ из стандартного потока ввода.

gets

Получить строку из стандартного потока ввода.

putc

Помещает символ в поток и перемещает позицию индикатора текущего положения.

putchar

Вывод текущего символа на стандартный поток вывода (stdout).

puts

Вывод строки  на стандартный поток вывода (на экран).

ungetc

Возвращает прочитанный символ обратно в поток ввода.

Чтение/запись потоков

fread

Считать блок данных из файла.

fwrite

Записать в файл блок данных.

Позиционирование по файлу

fgetpos

Получить значение текущего положения в файле.

fseek

Изменение позиции внутреннего указателя положения в файле, относительно некоторого положения.

fsetpos

Изменение позиции внутреннего указателя положения в файле.

ftell

Получить значение указателя текущего положения потока.

rewind

Установить внутренний указатель положения файла в начало файла.

Обработка ошибок

clearerr

Обнулить внутренние показатели ошибки и конца файла.

feof

Функция-индикатор конца файла, определяет конец файла.

ferror

Функция-индикатор ошибок, отлавливает ошибки, связанные с обработкой потоков.

perror

 Интерпретация кода ошибки макроса ERRNO в символьное сообщение.

Типы данных

FILE

Этот тип данных определяет поток и содержит информацию, необходимую для управления потоком.

fpos_t

Тип данных fpos_t хранит информацию для указания позиции в файле.

size_t

Тип данных для представления количества байтов буфера или строки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]