Глава 13. Обзор потоков ввода-вывода___________________________379

переменных, которым начальные значения не присваиваются, а передаются. Класс файловых потоков ввода называется ifstream, соответственно, класс файловых потоков вывода носит имя of stream.

Чтобы осуществить чтение из файла, объявите переменную ifstream с именем файла в качестве начального значения. Наверняка у каждого из нас на загрузочном диске компьютера есть файл Autoexec.bat, так что давайте развлекаться с ним. В листинге 13.5 приведена короткая программа, которая читает файл Autoexec.bat и выводит его содержимое на экран.

1 // INFILE.CPP — Выводит autoexec.bat на консоль

2 ftinclude <iostream.h>

3 ^include <fstream.h>

4 void main()

5 {

6 if stream in("C:\\AUTOEXEC.BAT") ;

7 char buf [256];

8 while( !in.eof())

9 (

10: in.getline( buf, 256); // Работает совсем как cin!

11: cout « buf « endl;

12: } 13: }

Обратите внимание, что команда getline с объектом класса ifstream используется точно так же, как и с объектом cin (который принадлежит классу istream). С той же легкостью в строке 10 можно было употребить операцию »:

10: in » ch; // использование операции » (ch — это символ) 11: cout « ch;

Эту операцию нецелесообразно применять здесь по той простой причине, что с ней в цикле while придется сделать гораздо больше проходов, выводя по одной букве вместо целой строки.

Вот такую примерно картину вы увидите на экране своего монитора (ваш файл Autoexec.bat, скорее всего, будет выглядеть несколько иначе).

@ЕСНО OFF

PROMPT $p$g

PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DOS;C:\MOUSE '

REM PCM+ path added

PATH C:\WINDOWS;C:\WINDOWS\COMMAND;PCMPLUS3;%PATH%

PATH=C: \ORAWIN\BIN; C: \IBLOCAL\BIN; C: MDAPI ; %PATH% ;

SET LMOUSE=C:\MOUSE SET TEMP=C:\DOS