Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1

Кент Рейсдорф. BORLAND C++BUILDER. Страница 92

Один из конструкторов ifstream принимает char* в качестве аргумента, поэтому можно указать имя файла непосредственно при создании экземпляра этого класса. В этом случае строки 12 и 13 сливаются в одну:

ifstream infile("readfile.cpp");

Если вы создаете объект таким образом, вызов функции ореп() не тре­буется. Файл будет автоматически открыт конструктором.

Вызов функции close() в строке 19 листинга 4.4 не является обязательным. Деструктор класса ifstream проверяет, не остался ли файл открытым, и при необходимости сам вызывает close(). Таким образом, файл в любом случае будет закрыт до разрушения экземпляра класса. В своих программах я почти всегда использую явный вызов closeQ. Это способствует документированию програм­мы, указывая на завершение работы с файлом.

В силу того, что классы для работы с файлами происходят от iostream, вы можете использовать операторы вставки и извлечения из потока таким же образом, как и при консольном вводе-выводе. В листинге 4.4 использована функция getline(), потому что оператор извлечения (») останавливается на первом встреченном пробельном символе. (К пробельным символам (white- space) относятся собственно пробел, символ табуляции, и т.д.) Функция же getline() читает из файла символы до тех пор, пока не встретит символ конца строки (EOL — end-of-line). Оператор извлечения из потока очень полезен при чтении отдельных чисел, которые не содержат пробельных символов. В следую­щем фрагменте из файла считываются числа, которые затем выводятся на экран:

Обратите внимание, что в данном примере файл по-прежнему является текстовым, а не двоичным. Оператор извлечения автоматически преобразует текст в целое число.

Вывод в файл

Вывод в файл в некотором смысле проще, чем ввод, благодаря оператору вставки (<<). В целом процедура близка к той, что используется при чтении. Вместо создания экземпляра класса if stream, вы создаете экземпляр класса ofstream и начинаете сбрасывать в него данные. Листинг 4.5 содержит про­грамму, которая создает новый файл, записывает в него 10 строк текста и закрывает. Затем файл снова открывается для чтения, его содержимое счи- тывается и выводится на экран.

Web-дизайн (с) 2010 All rights reserved