Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 91
Действительно, в лабиринте классов потокового ввода-вывода можно иногда заблудиться. Но сейчас я собираюсь рассказать о файловом вводе-выводе только в общих чертах, а это не очень сложно. Если же вам потребуется выполнять какие-то нестандартные файловые операции, то можно обратиться к справочным файлам библиотеки потокового ввода-вывода или приобрести хорошую книгу по Си++ (например, Teach Yourself Borland С++ 4.5 in 21 Days, Second Edition by Sams Publishing)*, в которой детально рассматривается работа с файлами.
Чтение текстового файла в Си++ является довольно простой задачей. Листинг 4.4 содержит программу, которая читает свой собственный исходный файл и выводит на экран строки по мере их считывания. Прежде всего, введите эту программу, не забыв убрать номера строк. Затем сохраните проект под именем READFILE. Если вы не сохраните программу под этим именем, она не будет правильно работать. Откомпилируйте и запустите программу. Поскольку программа читает свой собственный файл, на экран будет выведено содержимое листинга 4.4.
Листинг 4.4. READFILE.CPP
В строке 12 создается экземпляр класса ifstream с именем infile. Строка 13 открывает файл READFILE.CPP для чтения. В строке 14 проверяется, был ли файл успешно открыт, и если нет, программа завершает работу. Строка 15 является началом цикла. Заметьте, что условное выражение представляет собой вызов функции eof() класса istream. Эта функция возвращает true, если достигнут конец файла. В строке 16 из файла считывается одна строка текста с помощью функции getline(). Эта строка помещается в символьный массив buff. Затем содержимое массива выводится на экран. Наконец, строка 19 закрывает файл. Обратите внимание, что в строке 4 в программу включается заголовочный файл IOSTREAM.Н, содержащий объявление класса iostream. Как видите, благодаря Си++ и классу ifstream чтение текстового файла не требует больших усилий.