Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / C / C++ / Введение в язык C++ / Потоки /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Файлы и Потоки - Программирование от RIN.RU
Файлы и Потоки




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


Инициализация Потоков Вывода


ostream имеет конструкторы:


class ostream {
// ...
ostream(streambuf* s); // связывает с буфером потока
ostream(int fd); // связывание для файла
ostream(int size, char* p); // связывет с вектором
};


Главная работа этих конструкторов - связывать с потоком буфер. streambuf - класс, управляющий буферами; он описывается в #8.6, как и класс filebuf, управляющий streambuf для файла. Класс filebuf является производным от класса streambuf.


Описание стандартных потоков вывода cout и cerr, которое находится в исходных кодах библиотеки потоков ввода/вывода, выглядит так:


// описать подходящее пространство буфера
char cout_buf[BUFSIZE]
 
 
// сделать "filebuf" для управления этим пространством
// связать его с UNIX"овским потоком вывода 1 (уже открытым)
filebuf cout_file(1,cout_buf,BUFSIZE);
 
 
// сделать ostream, обеспечивая пользовательский интерфейс
ostream cout(&cout_file);
 
 
char cerr_buf[1];
 
 
// длина 0, то есть, небуферизованный
// UNIX"овский поток вывода 2 (уже открытый)
filebuf cerr_file()2,cerr_buf,0;
 
 
ostream cerr(&cerr_file);


Примеры двух других конструкторов ostream можно найти в этом пункте и в этом.


Закрытие Потоков Вывода


Деструктор для ostream сбрасывает буфер с помощью открытого члена функции ostream::flush():


ostream::~ostream()
{
flush(); // сброс
}


Сбросить буфер можно также и явно. Например:


cout.flush();


Вперед  >>>
 1  2 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Потоки

Введение

Вывод

Ввод

Работа со Строками

Буферизация

Эффективность

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь