cerr



Std cerr

Автор Skellington задал вопрос в разделе Другие языки и технологии

C++ str, подскажите и получил лучший ответ

Ответ от [гуру]
Иногда консольное приложение запускает не пользователь, а другая программа-оболочка (обычно с GUI).
И тогда эта программа может перехватывать вывод cout и cerr и отображать его в своем окне, либо писать в файл.
Причем вывод cerr идет отдельно, чтобы оболочка знала, что это не простое сообщение, а ошибка, и сообщала об этом юзеру.
Пример такой оболочки - журнал компиляции любой IDE для того же C++.
Консольный компилятор через cout или clog передает обычные сообщения о компиляции, а через cerr - ошибки компиляции. Увидев ошибки при компиляции, IDE сообщает о них программисту. Visual Studio отображает ошибки в специальном окошке, отдельно от прочих сообщений

Ответ от User51942[гуру]
Иногда эти потоки нужно перенаправить в другое место, нежели в стандартный поток вывода.
В файл, например.

Ответ от Николай Веселуха[гуру]
cout - связан со стандартным потоком вывода
cerr - связан со стандартным потоком ошибок (небуферизированный вывод)
clog - связан со стандартным потоком ошибок (буферизированный вывод)
Небуферизированный - выводится сразу в консоль.
Буферизированный - выводится по мере накопления определённого количества байт и как правило в файл, такая реализация положительно сказывается на производительности.
Буферизированный поток можно вывести и раньше, если сбросить буфер (flush)
P.S. не str:: а std::

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: C++ str, подскажите
Dynamic cast на Википедии
Посмотрите статью на википедии про Dynamic cast
Клан Керр на Википедии
Посмотрите статью на википедии про Клан Керр
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*