Kalombyr
@Kalombyr

Как в qDebug() реализован перевод на новую строку?

Приветствую!
В Qt есть
qDebug()<<a<<b<<c;
с помощью которого поток выводится в консоль/куда укажут.

Так вот, интересует, благодаря чем происходит перевод на следующую строку?
То есть как реализовано определение, что больше добавлять в поток ничего не будут (последний<<) и можно выводить всё содержимое?
Пытался в исходниках понять, но так и не понял, что за фокус был.
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
xorknown
@xorknown
Будут проблемы - решайте
Думаю большого ответа по данному поводу не надо. Опишу примерно.

Макрос qDebug возвращает временный объект QDebug в который пишутся какие-либо данные. После ";'" он, как временный объект, уничтожается. А в деструкторе он просто вызывает функцию "qt_message_output", которая пишет куда-либо, не суть, и передает в нее все накопленные параметры. И именно эта функция добавляет newline в вывод.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы