Программирование >>  Элементы языков с и с++ 

1 ... 69 70 71 [ 72 ] 73 74 75 ... 200


□ telig О - выдает текущее значение указателя позиционирования;

□ close () - закрывает файл;

□ rdbuf о - выдает указатель на буфер ввода (этот буфер находится в структуре, с которой связывается файл при его открытии).

Пример использования класса приведен в листинге 9.12.

истингЭ 1? jjjjjjjjjjjjjjjj

Jinclude <fstream>

ifstream FILE; /*объявляем переменную FILE типа ifstream (создаем экземпляр класса) */

charp[100];

FILE.openCa.txt ) ; вызьшаем метод открытия файла

if (FILE ==NULL) return(0); неудачное открытие файла while!! FILE, eof О ) {

ПЬЕ p;

cout p endl;

FILE.closeO ;

проверка на признак конца файла

чтение из файла вывод прочитанных данных на экран

закрытие фг1Йла

В листинге 9.13 приведен пример использования обоих классов: of stream, ifstream (оба находятся в fstream), результат работы программы показан на рис. 9.9.

Листинг 9.13

39.срр : Defines the entry point for the console application.

Jinclude stdafx.h jinclude<ios t ream> Jinclude<fstream> iinclude <conio.h>

Idefine DelKey s этот символ будет удаляться из потока Idefine maxline 1000



int tmain(int argc, char* argv[]) {

using namespace std; используется стандартное пространство имен

Проверка вывода ofstream FILE;

FILE.open( c:\\a.txt ,ios::out); char pfmaxlinej; int i,pos; for(i=0; i<2; i++)

FILE string i; /* endl; endl вводить не надо, иначе

цикл будет длиннее*/

FILE.closeО;

Проверка ввода (чтения по записям)

ifstream FILE1; FILEl.open( c:\\a.txt );

FILEl.seekg(0); /*указатель - в начало(он и так будет в начале, но это, чтобы посмотреть, как работает seekg())*/

if(FILEl == NULL) так надо проверять на ошибку открытия файла return(О);

while(!FILEl.eof()) так проверяется конец файла {

FILEl р i; cout р i endl; }

FILEl.closeO ; getch();

Проверка посимвольного чтения

ifstream FILE2; char с;

FILE2.open( с:\\a.txt );

if(FILE2 =- NULL) так проверять на плохое открытие



return(О) ;

while(! FILE2.eof()) так проверяется конец файла 1

c=FILE2.реек О ; /*смотрит, какой следующий символ будет считан,

но указатель позиционирования при этом не сдвигается:

остается на этом символе*/

streamoff cgp=FILE2.tellg(); /*так определяется текущая позиция Б файле*/

if (c==DelKey) /*выбрасьшаются все символы DelKey из читаемого по-

тока*/

pos= cgp +1; готовимся пропустить символ по seekgO

FILE2.seekg(pos); /*передвинули указатель позиционирования на

один символ дальше, чтобы пропустить символ */

continue; на продолжение цикла

FILE2.get (с); чтение символа в с cout с; I while cout endl; FILE2.close() ; getch();

systemCDEL C:\\A.TXT ); удаление рабочего файла 1 tinain()

л C:\WINDOWS\syslem32\fmd.exe

tringl trioa Otrincj 1

Ilin продолжения мажпите любую Konniuj

Рис. 9.9. Результат работы профаммы листинга 9.13

Работа с бинарным файлом

Такие файлы, в отличие от потоковых, создаются в определенной логической структуре и поэтому должны читаться в переменную той же структуры. При-



1 ... 69 70 71 [ 72 ] 73 74 75 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика