Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
tibs
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 11
#1

Перенаправление потока stdout - C++

27.11.2011, 16:55. Просмотров 2518. Ответов 5
Метки нет (Все метки)

Пишу программу с использованием библиотеки SDL.h. Дело в том, что в ней переопределена функция main и стандартные потоки завязанные на файлы (stdout.txt), что не очень удобно. Идея - вернуть поток на консоль, чтобы во время приложения работало 2 окна - 1 графическое (основное), 2 консоль.. И во время выполнения действий в основном окне, вся инфа о работе идет на консоль, а не в файл как сейчас. Помогите осуществить данное.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 16:55     Перенаправление потока stdout
Посмотрите здесь:

C++ Опять про fflush, уже stdout
stdin, stdout, stderror C++
Перенаправление потока вывода C++
Создание потока из потока. C++
C++ Вместо вывода в stdout, сохранить числа в динамический массив
Чтение из stdin и запись в stdout бинарной информации C++
Перехват stdout графического приложения C++
C++ Вызывть метод одного потока из другого потока
C++ Чтение UNICODE символов из STDOUT процесса
Перенаправление файлов C++
Два потока, две очереди, два потока C++
C++ Перенаправление потока

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,169
Завершенные тесты: 1
27.11.2011, 17:31     Перенаправление потока stdout #2
В винде можно AllocConsole, открыть CreateFile'ом CONOUT$, SetStdHandle. В невинде - не знаю.
tibs
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 11
27.11.2011, 17:41  [ТС]     Перенаправление потока stdout #3
Цитата Сообщение от Somebody Посмотреть сообщение
В винде можно AllocConsole, открыть CreateFile'ом CONOUT$, SetStdHandle. В невинде - не знаю.
напиши мне, пожалуйста, полную эту команду и ее где надо написать? Первой строкой в main.

PS: на винде
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,169
Завершенные тесты: 1
27.11.2011, 20:46     Перенаправление потока stdout #4
Если консоли нет, то
C++
1
AllocConsole();
Для WinApi'шных функций
C++
1
2
3
HANDLE h = CreateFile("CONOUT$", GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
SetStdHandle(STD_OUTPUT_HANDLE, h);
Для сишных прокатывает
C++
1
freopen("CONOUT$", "r+", stdout);
хотя есть некоторые сомнения насчёт стопроцентной работоспособности.
tibs
0 / 0 / 0
Регистрация: 19.11.2011
Сообщений: 11
28.11.2011, 02:28  [ТС]     Перенаправление потока stdout #5
Цитата Сообщение от Somebody Посмотреть сообщение
Для сишных прокатывает
Код C++1 freopen("CONOUT$", "r+", stdout);
эта прокатила, спасибо
Цитата Сообщение от Somebody Посмотреть сообщение
AllocConsole();
а для нее что подключить нужно?
Bers
Заблокирован
28.11.2011, 02:29     Перенаправление потока stdout #6
Цитата Сообщение от tibs Посмотреть сообщение
а для нее что подключить нужно?
http://vsokovikov.narod.ru/New_MSDN_...ole/con_fn.htm
Yandex
Объявления
28.11.2011, 02:29     Перенаправление потока stdout
Ответ Создать тему
Опции темы

Текущее время: 11:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru