Файловый ввод/вывод
Библиотека iostream поддерживает и файловый ввод/вывод. Все операции, применимые в стандартному вводу и выводу, могут быть также применены к файлам. Чтобы использовать файл для ввода или вывода, мы должны включить еще один заголовочный файл:
#include <fstream>
Перед тем как открыть файл для вывода, необходимо объявить объект типа ofstream:
ofstream outfile("name-of-file");
Проверить, удалось ли нам открыть файл, можно следующим образом:
if ( ! outfile ) // false, если файл не открыт
cerr << "Ошибка открытия файла.\n"
Так же открывается файл и для ввода, только он имеет тип ifstream:
ifstream infile("name-of-file");
if ( ! infile ) // false, если файл не открыт
cerr << "Ошибка открытия файла.\n"
Ниже приводится текст простой программы, которая читает файл с именем in_file и выводит все прочитанные из этого файла слова, разделяя их пробелом, в другой файл, названный out_file.
#include <iostream>
#include <fstream>
#include <string>
int main()
{
ifstream infile("in_file");
ofstream outfile("out_file");
if ( ! infile ) {
cerr << "Ошибка открытия входного файла.\n"
return -1;
}
if ( ! outfile ) {
cerr << "Ошибка открытия выходного файла.\n"
return -2;
}
string word;
while ( infile >> word )
outfile << word << ' ';
return 0;
}
В главе 20 библиотека ввода/вывода будет рассмотрена подробно. А в следующих разделах мы увидим, как можно создавать новые типы данных, используя механизм классов и шаблонов.