|
Программирование >> Элементы языков с и с++
□ 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 Работа с бинарным файлом Такие файлы, в отличие от потоковых, создаются в определенной логической структуре и поэтому должны читаться в переменную той же структуры. При-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |