2010-03-15 21 views
4

我想弄清楚如何將istream重定向到wxwidgets。我該如何重定向wxWidgets中的stdin(istream)?

我能夠完成重定向ostream的,這裏是如何(所以你知道我的意思):

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

我一直在尋找了一段時間,我無法找出我會重定向istream某種類型的wx-input(所以「cin」實際上會通過wxWidgets提示用戶輸入)。

回答

3

不,沒有內置的方法來做到這一點,因爲它不太常見,想要重定向cin這樣比較,與cout相比。而且它也不是很清楚你如何期待它的工作,即你可能不能像cout那樣將它映射到wxTextCtrl。更一般地說,與編寫不同,閱讀是一項阻塞操作,所以根本不清楚如何構建GUI應用程序來完成它。

總之,我不認爲你可以使用cin這樣的wxWidgets移植你的控制檯程序。