Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > unbuffered console


Автор: lomantik 29.8.2011, 16:56
Здравствуйте! Возникла новая проблема со связкой "консоль - GUI", а именно буферизированный вывод из консольного приложения под Windows. GUI получает вывод консоли только после окончания ее работы, а не в процессе. На Linux сие решается добавлением строчки "setbuf(stdout, NULL);" в код консоли. В Windows же этот трюк не приводит ни к чему. Консоль все так же пишет все в буфер. Очень прошу всех поделиться мыслями по этому поводу.

Автор: spyswamp 29.8.2011, 17:25
lomantik, С или С++? Покажешь как выводишь в консоль?

Автор: lomantik 8.9.2011, 13:08
Как оказалось, все решалось довольно просто. Итак по пунктам.
1) Буферизация консоли в любой ОС действительно отключается посредством:
Код

setbuf(stdout, NULL);

2) У любого интерпретатора python-а так же имеется свой буфер вывода. Это буфер можно отключить посредством вставки следующих строк в python-код:
Код

import sys
import os
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)