Строковые потоки,их свойства,назначение.



Особой разновидностью потоков являются строковые потоки, представленные классом strstream:

Строковые потоки позволяют облегчить формирование данных в памяти. В примере демонстрируется ввод данных в буфер, копирование их в компоненту s класса string и их просмотр.

class string { char s[80]; public: string(char *S)

{for(int i=0;s[i++]=*S++;);} void see(){cout<<s<<endl;} };

void fun(const char *s) { strstream st; // создание объекта st

st << s << ends; // вывод данных в поток (в буфер)

string obj(st.str()); // создание объекта класса string

st.rdbuf()->freeze(0); // освобождение памяти в буфере

obj.see(); // просмотр скопированной из буфера строки}

main() { fun("1234"); }

 


21.Иерархия классов потоков ввода\вывода. Механизм связывания потока с файлом.

В языке С++ для организации работы с файлами используются классы

потоков ifstream (ввод), ofstream (вывод) и fstream (ввод и вывод) (рис. 8).

Перечисленные классы являются производными от istream, ostream и

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

Рис. 8. Часть иерархии классов потоков ввода–вывода

 

В С++ файл открывается путем стыковки его с соответствующим потоком. Рассмотрим организацию связывания потока с некоторым файлом. Для этого используются конструкторы классов ifstream и ofsream:

ofstream(const char* Name, int nMode= ios::out, int nPot= filebuf::openprot);

ifstream(const char* Name, int nMode= ios::in, int nPot= filebuf::openprot);

Первый аргумент определяет имя файла (единственный обязательный

параметр).

Второй аргумент задает режим для открытия файла и представляет бито-

вое ИЛИ (|) величин:

Третий аргумент – данное класса filebuf используется для установки атрибутов доступа к открываемому файлу.

 


Дата добавления: 2015-12-21; просмотров: 15; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!