Файловый ввод-вывод

Содержание

Слайд 2

Файл - конечное количество последовательных байт, являющееся главной структурной единицей операционных систем

Файл - конечное количество последовательных байт, являющееся главной структурной единицей операционных

систем
Слайд 3

С помощью файлов программы взаимодействуют с «внешним миром»: ● обмен данными

С помощью файлов программы взаимодействуют с «внешним миром»:
● обмен данными с

пользователем, устройствами,
● чтение из файлов и запись в файлы

Потоковый ввод-вывод:
● обеспечивает последовательную передачу байт
● поток — набор внутренних структур данных,
обеспечивающих последовательный интерфейс
обмена между внешним источником (приемником) и
программой

Слайд 4

Использование файлов в программе предполагает следующие операции: создание потока; открытие потока

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

его с файлом;
обмен (ввод-вывод);
закрытие файла.

Стандартная библиотека языка программирования С++ содержит три класса для работы с файлами:
ifstream – класс входных файловых потоков;
ofstream - класс выходных файловых потоков;
fstream - класс двунаправленных файловых потоков.

Слайд 5

Для того, чтобы в C++ работать с файлами, необходимо подключить заголовочный

Для того, чтобы в C++ работать с файлами, необходимо подключить заголовочный

файл fstream:
#include
Создание потока:
ofstream file_object("FILENAME.EXT");
Если вы указываете имя файла при объявлении объекта типа ofstream, C++ создаст новый файл на вашем диске, используя указанное имя, или перезапишет файл с таким же именем, если он уже существует на вашем диске.
Слайд 6

После этого можно объявлять объекты, привязанные к файлам: для чтения данных

После этого можно объявлять объекты, привязанные к файлам: для чтения данных

из файла используются объекты типа ifstream (аббревиатура от input file stream, для записи данных в файл используются объекты типа ofstream (output file stream). Например

ifstream in; // Поток in будем использовать для чтения
ofstream out; // Поток out будем использовать для записи

Слайд 7

Чтобы привязать тот или иной поток к файлу (открыть файл для

Чтобы привязать тот или иной поток к файлу (открыть файл для

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

in.open("input.txt");
out.open("output.txt");

Слайд 8

После открытия файлов и привязки их к файловым потокам, работать с

После открытия файлов и привязки их к файловым потокам, работать с

файлами можно так же, как со стандартными потоками ввода-вывода cin и cout. Например, чтобы вывести значение переменной x в поток out используются следующая операция
out<А чтобы считать значение переменной из потока in
in>>x;

Для закрытия ранее открытого файла используется метод close() без аргументов:
in.close();
out.close();

Слайд 9

Oбъекты типа ifstream могут использовать getline для чтения строки файлового ввода,

Oбъекты типа ifstream могут использовать getline для чтения строки файлового ввода,

тем самым можно считывать файл построчно.

Используя цикл while, ваши программы могут непрерывно читать содержимое файла, пока не найдут конец файла, как показано ниже:
while (! input_file.eof())
{    // Операторы
}

Слайд 10

Если в процессе файловой операции ошибок не было, функция fail возвратит

Если в процессе файловой операции ошибок не было, функция fail возвратит

ложь (0). Однако, если встретилась ошибка, функция возвратит истину. Например, если программа открывает файл, ей следует использовать функцию fail, чтобы определить, произошла ли ошибка, как это показано ниже:

ifstream input_file("FILENAME.DAT"); if (input_file.fail())
{   cerr << "Ошибка открытия FILENAME.EXT" << endl;     exit(1); }

Слайд 11

Режимы открытия файла: Пример использования: ifstream output_file("Filename.EXT", ios::out | ios::noreplace);

Режимы открытия файла:
Пример использования:
ifstream output_file("Filename.EXT", ios::out | ios::noreplace);