Ввод и вывод в языках C и C++. Ввод/вывод в языке C++ (общие сведения)

   
На этом шаге мы приведем общие сведения об организации ввода и вывода в языке C++.

   
Ввод и вывод в C++ организован с помощью так называемых поточных классов, содержащих данные и
методы работы с файлами по вводу/выводу. Поточные классы происходят от общего предка - класса ios, и
потому наследуют его функциональность.

   
Чтобы начать писать программу с использованием ввода/вывода на языке C++, следует обязательно
поместить директиву препроцессора:

  #include <fstream>     .

   
Класс fstream является потомком классов istream, ostream. Эти же классы
являются родителями классов ifstream, ofstream. Класс fstream используется
для организации ввода/вывода (т. е. чтения/записи) в один и тот же файл. Классы ifstream, ofstream используются
для организации, соответственно, ввода (т. е. чтения файла) и вывода (т. е. записи в файл).

   
В свою очередь, экземплярами классов istream, ostream являются cin, cout, cerr,
с помощью которых осуществляется так называемый стандартный ввод/вывод - ввод со стандартного
вводного устройства (которым по умолчанию является клавиатура) и вывод на стандартное выводное устройство (которым по
умолчанию является экран). Таким образом, включение в программу класса fstream оказывается достаточным
для организации как стандартного, так и файлового ввода/вывода.

   
Файловый ввод/вывод организован с помощью переопределенных в поточных классах операций
включения (<<) и извлечения (>>). Ранее мы видели, что это операции сдвига влево и сдвига вправо
битов в переменной типа int, но в поточных классах C++ они обрели новую функциональность.

   
Чтобы работать с файлом, его сначала следует открыть: связать со специальной структурой, в которой задаются характеристики
файла (размер буфер ввода/вывода, состояние файла, последняя прочитанная запись и т. п.). Связь эта выполняется с помощью функции
ореn(), входящей в один из классов, кототый определяет ввод/вывод (fstream, istream, ostream). Поэтому, чтобы
выполнить такую функцию, следует сначала создать экземпляр соответствующего класса (для получения доступа к этой функции).
Если мы, например, хотим выполнять вывод в файл (т. е. запись в него), то следует создать экземпляр класса ostream: ostream exp;
и затем выполнить функцию ехр.ореn(). В скобках должны быть параметры этой функции: имя открываемого файла
и способ открытия файла, в котором задаются сведения о том, как собирается пользователь работать с файлом (читать его, писать в него или делать что-то еще).

   
После того как файл открыт, собственно для чтения или записи уже используют операции включения/извлечения (<<, >>).
Если использовать пример с экземпляром ехр класса ostream, то можно записать так:

  ехр << "строка текста" << i << j << endl;

   
Здесь i, j - некоторые переменные (например, int i; float j;), endl - переход на новую строку.

   
После того как работа с файлом закончена, следует закрыть файл, чтобы разорвать связь с той структурой, с которой
файл был связан при его открытии. Это необходимо, чтобы дать возможность другим файлам "открываться". Этот акт выполняется
с помощью метода close() того же экземпляра класса, который мы создавали, чтобы выполнить функцию open().
В нашем случае следовало бы написать:

  ехр.close();

   
На следующем шаге мы рассмотрим ввод/вывод с использованием разных классов.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий