- •Файловый
- •Класс – это описание множества объектов и выполняемых над ними действий
- •Наследование
- •Состояния потока описываются в классе ios в виде перечисления enum:
- •Проверить состояние потока можно
- •Работа с классом fstream
- •Задание нескольких режимов
- •Позиционирование с помощью функций
- •Возврат текущей позиции
- •Файловый ввод-вывод
- •создать файловый поток
- •Пример 2.
- •Работа с классом ofstream
- •Альтернативные функции
- •Пример использования класса ofstream
- •Работа с классом ifstream
- •1) Программа создает объект типа ofstream и выводит несколько строк текста в файл
- •файл A.DAT, читает его и отображает первые три элемента
- •4Программа читает файл по одному символу
- •5) Используется функция eof
- •6) Читается содержимое файла
- •Бинарный файл
- •(вместе с расширением) нужно ввести, читает из файла число и возводит его в
- •продолжение
- •окончание
- •вывода содержимого структуры с информацией о работнике (фамилия и имя,
- •функцию fail для проверки
Позиционирование с помощью функций
•seekg()
•g обозначает позиционирование для чтения (getting) символов (используется с объектом класса ofstream),
•seekp()
•p – для записи (putting) символов (используется с объектом
класса ifstream).
Возврат текущей позиции
•tellg()
•tellp()
Файловый ввод-вывод
#include <fstream >
•ofstream – запись в файл;
•ifstream – чтение из файла;
•fstream – чтение/запись.
•ifstream in; // входной поток
•ofstream out; // выходной поток
•fstream both; // поток ввода-
вывода
создать файловый поток
1)
// Создается объект fstream (ifstream, ofstream)
fstream ff;
//Открывается файл, который связывается
//с потоком
ff.open(“my.txt”,ios::in | ios::out); char p[100];
ff.seekg(0); //позиционировать на начало ff.getline(p,100); //чтение 1-ой стр с начала ff.close;
Пример 2.
//Создается объект fstream,
//одновременно открывается файл,
//который связывается с потоком fstream stream(“имя”,ios::in);
•#include <fstream>
•#include <iostream>
•………………….
•int _tmain(int argc, _TCHAR* argv[])
•{ using namespace std;
•char p[100];
•fstream inout;
•inout.open (“a.txt”, ios::in | ios::out | ios:: trunc);
•inout<<”This is string”<<endl; //создание двунаправленного потока и вывод в файл
•inout.seekg(0); //установка позиционера на начало
•inout.getline(p,50); //чтение строки из файла
•Inout.seekg(0); //установка позиционера на начало
•cout<<endl<< inout.rdbuf(); //вывод содержимого потока на экран
• inout.close(); //закрыть поток }
Работа с классом ofstream
•ofstream outfile(“copy.out”, ios::out);
•ofstream
outfile2(“copy.out”); //эти объекты эквивалентны
Альтернативные функции
•ostream & put(char C);
•ostream& write(const char* buffer, int size);
Пример использования класса ofstream
•#include <fstream>
•………………….
•int _tmain(int argc, _TCHAR* argv[])
•{ oftream out; //переменная типа ofstream
•………………..
•out.open(“a.txt”); //вызывает метод открытия файла
•if (out == NULL) return 0; //выход, если не открыли файл
•for (int i = 0; i < 2; i++)
•out<<”string”<<1<<endl: //вывод в файл
•out close(); //закрытие файла
•……………….. }
Работа с классом ifstream
•getline (char * buffer, streamsize size, char delimiter='\n');
•read ( char* buffer, streamsize size );
•gcount()