解决Visual C++2008编译窗口一闪而过情况

首先来看一个简单的程序(编译环境为 DEV C++。): 
#include <iostream> 
int main() 

    std::cout << "我喜欢C++\n"; 
    return 0; 
} 

以上程序在DEV C++软件下编译,会出现窗口一闪而过的问题~~当然,在VC 6.0也会出现,不过VC 6.0 只要 再 按 ctrl+F5 就可以解决~~至于出现这问题,我想应该是我的机子系统问题吧~我看网上的视频教程,他们都没有这个一闪而过的问题。呵呵,废话不说,先说下解决方法吧: 
在网上,有人说在 程序的结尾加上getchar(); ,但发现不行的。而有人说system("pause"); ,这个方法确实可以解决。但需要在开头加上#include "stdlib.h" 。不然的话,程序一闪而过的问题一样没有得到解决。至于getchar();为何不行,我也想不通,所以希望路过的高手就留言写下原因。 
最终的程序为这样: 
#include <iostream> 
#include "stdlib.h" 
int main() 

    std::cout << "我喜欢C++\n"; 
    system("pause"); 
    return 0; 


各位就快去试下吧~
 
引用原帖地址:http://hi.baidu.com/%E5%D0%D2%A3%D0%A1gg/blog/item/3bdfb65004690d12377abe25.html
解决DEV C++一闪而过的办法~~~
1.在您想要暂停的地方加上 system("pause"); 就可以使 C/C++ 程序暂停。不过,这个办法奏效的前提是系统中必须存在 pause 这个命令。此外,还需要包含标准头文件 stdlib.h(对于 C)或者 cstdlib(对于 C++)。

2.在您想要暂停的地方加上 getchar();(对于 C 和 C++)或者 cin.get();(仅适用于 C++)就可以使程序暂停,然后按回车程序就会继续执行。不过,您会发现,这种办法却不一定奏效。如果您够细心,会发现只有当 getchar();/cin.get(); 前面有接收输入的语句的时候,该办法才会失效。如果之前没有接收任何输入,该办法是 100% 奏效的!这是因为,如果前面接收了输入,输入流中可能会有残留数据,

getchar();/cin.get(); 就会直接读取输入流中的残留数据,而不会等待我们按回车。解决该问题的办法是,先清空输入流,再用 getchar();/cin.get();。清空输入流的办法如下:

     1). /* 适用于 C 和 C++。需要包含 stdio.h(对于 C)或者 cstdio(对于 C++)*/
         while ( (c = getchar()) != '\n' && c != EOF ) ;   /* 对于 C 和 C++ */

     2). cin.clear();     // 仅适用于 C++,而且还需要包含标准头文件 limits
         cin.ignore( numeric_limits<streamsize>::max(), '\n' );

 

我已经试过,方法2可以在Visual c++ 2008编译环境下试验功能

 

原帖来源:http://blog.163.com/sars-sheng@126/blog/static/76349095201023110162450/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值