windows程序中如何出现console窗口 小弟初学MFC,最近我先将一个C程序封装成了类,完成后要编写一个对话框程序,调用类中的函数,其中有一个函数需要通过scanf函数来接收用户的输入从而采取相应的操作,请问各位大虾如何在我的windows程序总出现console窗口从而实现scanf函数的输入啊?先谢谢各位了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建Win32 Console application 本帖最后由 xyzhaopeng 于 2010-04-29 17:50:01 编辑 void redirect_io(){ // 重定向输出 HANDLE hStdHandle; int fdConsole ; FILE *fp; AllocConsole();//分配一个控制台 hStdHandle =(HANDLE)GetStdHandle(STD_OUTPUT_HANDLE); //取得控制台的输出句柄 fdConsole = _open_osfhandle((intptr_t)hStdHandle , 0x4000);//句柄到文件描述符的转换 fp = _fdopen( fdConsole , "w" );//打开此文件描述府 *stdout = *fp;//重定向stdout到console的输出}程序中调用如上函数 利用AllocConsole() 在你的MFC程序中添加这些代码,可以获得控制台的输入,你试试 AllocConsole(); freopen("CONOUT$","w+t",stdout); freopen("CONIN$","r+t",stdin); cout << "Input:" <<endl; int iTest = 0; cin >> iTest; fclose(stdout); fclose(stdin); FreeConsole(); afxDump << "Input Content:" << iTest << endl; 楼上的大哥,_open_osfhandle和intptr_t如何定义啊? 利用AllocConsole() 在你的MFC程序中添加这些代码,可以获得控制台的输入,你试试 AllocConsole(); freopen("CONOUT$","w+t",stdout); freopen("CONIN$","r+t",stdin); cout << "Input:" <<endl;int iTest = 0;cin >> iTest;fclose(stdout);fclose(stdin); FreeConsole();afxDump << "Input Content:" << iTest << endl;解决窗口一闪而过的问题可以加一个while,这样程序不退出就可以了 AllocConsole(); freopen("CONOUT$","w+t",stdout); freopen("CONIN$","r+t",stdin); cout << "Input:" <<endl;int iTest = 0;cin >> iTest;fclose(stdout);fclose(stdin); FreeConsole();afxDump << "Input Content:" << iTest << endl;int i;cin>>i;最后加个输入就好了,不输入就会一直存在了,呵呵 在InitInstance里做就不会一闪而过了 [ 毕业设计系列问题-3 ]变量的作用范围 请教:用VC++开发单机管理软件用什么数据库最好? .xls文件可以做为数据源么? 请问VC下的报表控件哪个比较好用?要求是免费的 一个非常简单的问题! 如何改变Splitter里各个视的初始化大小? 哪个消息是通知程序它的窗口已被另一窗口遮盖了一部分? 高手请帮忙 如何获取lparam参数? 如何把浏览目录对话框功能加入到自己的对话框中,自己从头写除外。 VC 静态库的链接信息保存在哪儿? 在查找字符时,如何让CRichEditCtrl自动滚动到当前要找的字符处?
{
// 重定向输出
HANDLE hStdHandle;
int fdConsole ;
FILE *fp;
AllocConsole();//分配一个控制台
hStdHandle =(HANDLE)GetStdHandle(STD_OUTPUT_HANDLE); //取得控制台的输出句柄
fdConsole = _open_osfhandle((intptr_t)hStdHandle , 0x4000);//句柄到文件描述符的转换
fp = _fdopen( fdConsole , "w" );//打开此文件描述府
*stdout = *fp;//重定向stdout到console的输出
}程序中调用如上函数
在你的MFC程序中添加这些代码,可以获得控制台的输入,你试试 AllocConsole();
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);
cout << "Input:" <<endl;
int iTest = 0;
cin >> iTest;
fclose(stdout);
fclose(stdin);
FreeConsole(); afxDump << "Input Content:" << iTest << endl;
在你的MFC程序中添加这些代码,可以获得控制台的输入,你试试 AllocConsole();
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);
cout << "Input:" <<endl;
int iTest = 0;
cin >> iTest;
fclose(stdout);
fclose(stdin);
FreeConsole();afxDump << "Input Content:" << iTest << endl;
解决窗口一闪而过的问题可以加一个while,这样程序不退出就可以了
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);
cout << "Input:" <<endl;
int iTest = 0;
cin >> iTest;
fclose(stdout);
fclose(stdin);
FreeConsole();afxDump << "Input Content:" << iTest << endl;int i;
cin>>i;最后加个输入就好了,不输入就会一直存在了,呵呵