На этом шаге мы перечислим глобальные потоковые объекты.
Для потоковых классов определен ряд глобальных потоковых объектов, предназначенных для работы со стандартными каналами ввода-вывода (таблица 1). Эти объекты упоминались в предыдущих шагах при описании потоков данных с типом символов char, однако аналогичные объекты также определены для потоков данных с типом символов wchar_t.
Тип | Имя | Назначение |
---|---|---|
istream | cin | Читает данные из стандартного канала ввода |
ostream | cout | Записывает "нормальные" данные в стандартный канал вывода |
ostream | cerr | Записывает сообщения об ошибках в стандартный канал вывода ошибок |
ostream | clog | Записывает журнальные данные в стандартный канал вывода журнала |
wistream | wcin | Читает данные с расширенной кодировкой символов из стандартного канала ввода |
wostream | wcout | Записывает "нормальные" данные с расширенной кодировкой символов в стандартный канал вывода |
wostream | wcerr | Записывает сообщения об ошибках с расширенной кодировкой символов в стандартный канал вывода ошибок |
wostream | wclog | Записывает журнальные данные с расширенной кодировкой символов в стандартный канал вывода журнала |
По умолчанию эти стандартные потоки данных синхронизируются со стандартными потоками данных С. Иначе говоря, стандартная библиотека C++ гарантирует сохранение порядка вывода при смешанном использовании потоков данных С и C++. Перед выводом все буферы стандартных потоков данных C++ очищают буферы соответствующих потоков данных С, и наоборот. Разумеется, синхронизация требует дополнительного времени. Если она не нужна, отключите ее вызовом sync_with_stdio(false) перед первой операцией ввода-вывода.
На следующем шаге мы рассмотрим заголовочные файлы.