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

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

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

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

27.11.2011, 16:55. Просмотров 2562. Ответов 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++
Мне нужно получить список файлов в директории и перенаправить поток в текстовый файл. Отдельно перенаправить поток и получить список файлов...

Перенаправление потока вывода - C++
Здравствуйте! Задача такова - нужно перенаправить поток вывода с cout на файловый в одном из конструкторов класса. Итог - необработанное...

stdin, stdout, stderror - C++
Эти три файловых дискриптора, получаемые программами при запуске они указывают на реальные файлы, который файловая система создает? Когда я...

Перехват stdout графического приложения - C++
ОС Win7. Возможно ли перехватывать stdout графического приложения, и если да, то как?

Опять про fflush, уже stdout - C++
Уважаемые профессионалы. В книге Хэзфилд, Кирби " Искусство программирования на языке Си. Фундаментальные алгоритмы.... " на 58 стр. увидел...

Чтение UNICODE символов из STDOUT процесса - C++
У меня есть процесс (cmd.exe) создан через WINAPI функцию CreateProcess. К процессу подключено 2 переменных типа HANDLE из которых в свою...

Чтение из stdin и запись в stdout бинарной информации - C++
Привет. Посмотрите, пожалуйста. Мне нужен т.н. "прозрачный" ехе-шник, чтобы он передавал в StdOut тоже, что и получил из StdIn. ...

Вместо вывода в stdout, сохранить числа в динамический массив - C++
Это алгоритм выборки элементов из двумерного массива. Нужно сохранить отобранные элементы в одномерный динамически создаваемый массив. ...

Перенаправление файлов - C++
Что должно происходить после ввода program <input>outfile в командной строке? После ввода пишет, что не удается найти указаннный путь ...

Перенаправление потоков - C++
Мне необходимо использовать в своей программе потом другой. Например: открыл я консоль, набрал команду, но результат слишком большой, я его...

Перенаправление std::cerr - C++
Всем доброго времени суток! Возможно вопрос очень простой, но вразумительного ответа найти не смог. Необходимо перенаправить вывод из...

Перенаправление вывода в другое окно - C++
У меня есть прога, выводящая в одно из созданных ею окон текст. Как можно перехватить этот вывод и направить его в созданное мной окно...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 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
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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