2010-03-15 3 views
4

Я пытаюсь выяснить, как перенаправить istream в wxwidgets.Как я могу перенаправить stdin (istream) в wxWidgets?

Я был в состоянии выполнить перенаправлять ostream, вот как (так что вы знаете, что я имею в виду):

wxTextCtrl* stdoutctrl = new wxTextCtrl(...); 
    wxStreamToTextRedirector redirect(stdoutctrl); //Redirect ostream 
    std::cout<<"stdout -- does this work?"<<std::endl; //It worked. 

Я искал когда-то теперь, и я не могу выяснить, я бы перенаправить istream на какой-то wx-вход (так что «cin» на самом деле будет запрашивать пользователя для ввода через wxWidgets).

ответ

3

Нет, нет встроенного способа сделать это, так как гораздо реже переадресовать cin как у cout. И также не совсем понятно, как вы ожидаете, что это сработает, т. Е. Вы, вероятно, не можете просто сопоставить его с wxTextCtrl, как и с cout. И в общем, чтение - это операция блокировки, в отличие от написания, поэтому совершенно неясно, как вы можете структурировать свое приложение GUI для этого.

Короче говоря, я не думаю, что вы можете подключить консольную программу, используя cin, к wxWidgets, как это вообще.