VC++2005运行Win32控制台程序时,为什么弹不出控制台窗口(无法看到运行结果)?

VC++中如果是按F5运行的话,表示以调试方式运行,如果遇到断点可以停下来,也可以单步调试、监视变量等。程序结束时立即退出。如果是按Ctrl+F5运行的话,表示以独立的方式运行,即使遇到断点也不会停下来。但程序结束时会显示一个"按任意键继续"的东东,让你有足够的时间观察运行结果。 在Windows下的其他编译环境中,要达到类似效果的话,在程序的最后加上一句: system("pause"); 这个system函数包含在头文件stdlib.h(C++是cstdlib)里面。 方法1:使用CTRL + F5运行你的程序. 方法2:在程序结尾加上getchar() or getch(),当然别忘了头文件conio.h. 方法3:在你的代码中插入 system("pause")看看 先解释一下为什么一闪而过: 当你在vc++里运行程序,vc++将会调用行命令模式(即command.com程序),打开你的程序。当程序执行完毕后将自动退出行命令模式。所以你来不及看你的程序的输出。 要解决这个问题,最简单的方案就是在你的代码的最后,return 0;之前,加上 getchar(); //getch()似乎不是ANSI C的一部分 这个语句将使得你的程序做最后一件事情:从输入缓冲区(输入流stdin)中读一个字符。也就是说在你的其他程序结束后,还要敲一下回车才会结束所有程序。 但是,要注意的是:当程序快结束时,如果你的输入缓冲区中已经有字符了,c语言将直接从缓冲区中读取一个字符,然后结束程序。而不等待你的输入。 比如: #include int main(void) { putchar(getchar()); //你的程序只有这么一句,作用是输入一个字符,然后计算机将它输出 getchar();//这是你为了防止一闪而过而加的语句 return 0; } 这个程序结束时将仍然一闪而过。原因在于第一条getchar()表达式执行的时候,将返回你输入的第一个字符,后面的字符(包括回车字符'/n')留在了缓冲区。要解决这类问题,得随机应变,没有统一的解决方案。在这个例子中,可以这样: #include int main(void) { putchar(getchar()); //你的程序只有这么一句,作用是输入一个字符,然后计算机将它输出 while(getchar()!='/n') continue;//这个循环将把输入缓冲区的内容清掉,一直清到换行符。 getchar();//这是你为了防止一闪而过而加的语句 return 0; } 复杂一点的解决方案是,不要在visual c++中执行。你先生成可执行文件,然后打开行命令模式(运行->cmd),然后在那里运行你的程序,就不会自动退出了。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/leeharry/archive/2008/02/27/2124692.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值