Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Базовый класс ios. Методы и операции класса ios




Классы ввода-вывода iostream рассматривают информацию, как побитовый поток данных. Если данные выводятся на экран или заносятся в файл, то источник их как правила находится в программе. Если поток направлен в противоположную сторону, то данные могут поступать либо с клавиатуры или из файла, В этом случае они заносятся в переменные.

· Класс streambuf управляет буфером, его методы позволяют наполнить, опорожнить и очистить буфер;

· Класс ios является базовым для классов ввода-вывода;

· Классы istream и ostream являются произвольными от класса ios и отвечают соответственно за потоковый ввод и вывод данных;

· Класс iosteam является произвольным от istream и ostream и обеспечивает методы ввода-вывода для печати на экран;

· Классы fstream используются для ввода-вывода из файла.

 

 

34. Файловые потоки. Классы для работы с файлами: ifstream, ofstream, fstream

Под файлом обычно подразумевается именованная информация на внешнем носителе, например, на жестком или гибком магнитном диске.

Логически файл можно представить как конечное количество последовательных байтов, поэтому такие устройства, как дисплей, клавиатуру и принтер также можно рассматривать как частные случаи файлов.

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

 

Стандартная библиотека содержит три класса для работы с файлами:

· ifstream — класс входных файловых потоков;

· ofstream— класс выходных файловых потоков;

· fstream — класс двунаправленных файловых потоков.

Эти классы являются производными от классов istream, ostream и iostream соответственно, поэтому они наследуют перегруженные операции « и » , флаги форматирования, манипуляторы, методы, состояние потоков и т. д.

Использование файлов в программе предполагает следующие операции:

· создание потока;

· открытие потока и связывание его с файлом;

· обмен (ввод/вывод);

· уничтожение потока;

· закрытие файла.

 

Каждый класс файловых потоков содержит конструкторы, с помощью которых можно создавать объекты этих классов различными способами.

· Конструкторы без параметров создают объект соответствующего класса, не связывая его с файлом:

ifstream();

ofstream();

fstream();

· Конструкторы с параметрами создают объект соответствующего класса, открывают файл с указанным именем и связывают файл с объектом:

ifstream(const char *name, int mode = ios::in);

ofstreamCconst char *name, int mode = ios::out | ios::trunc);

fstream(const char *name, int mode = ios::in I ios::out);

 

Вторым параметром конструктора является режим открытия файла. Если установленное по умолчанию значение не устраивает программиста, можно указать другое, составив его из битовых масок, определенных в классе ios:

 

enum open_mode{

in = 0x01, // Открыть для чтения

out = 0x02, // Открыть для записи

ate = 0x04, // Установить указатель на конец файла

арр = 0x08, // Открыть для добавления в конец

trunk = 0x10, // Если файл существует, удалить

nocreate = 0x20, // Если файл не существует, выдать ошибку

noreplace = 0x40, // Если файл существует, выдать ошибку

binary = 0x80 // Открыть в двоичном режиме

};

 

35. Строковые потоки. Базовые классы строковых потоков: istringstream, ostringstream, stringstream

Строковые потоки позволяют считывать и записывать информацию из областей оперативной памяти так же, как из файла, с консоли или на дисплей. В стандартной библиотеке определено три класса строковых потоков:

· istringstream — входные строковые потоки;

· ostringstream — выходные строковые потоки;

· stringstream — двунаправленные строковые потоки.

Эти классы определяются в заголовочном файле <sstream> и являются производными от классов istream, ostream и iostream соответственно, поэтому они наследуют перегруженные операции « и », флаги форматирования, манипуляторы, методы, состояние потоков и т. д.

Строковые потоки создаются и связываются с этими участками памяти с помощью конструкторов:

explicit istringstream(int mode = ios::in);

explicit ostringstream(int mode = ios::out) и т.д.

 

В строковых потоках описан метод str, возвращающий копию строки или устанавливающий ее значение:

string str() const;

void str(const string & s);

Проверять строковый поток на переполнение не требуется, поскольку размер строки изменяется динамически.

 


Поделиться:

Дата добавления: 2015-04-18; просмотров: 304; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты