对于C++窗口编译一闪而过的解决方法 (DEV CPP下)

时间:2021-09-24 20:55:22

对于C++窗口编译一闪而过的解决方法

首先来看一个简单的程序(编译环境为 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/��ңСgg/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). 

         while ( (c = getchar()) != '\n' && c != EOF ) ;

(int c;)



     2). cin.clear();     // 仅适用于 C++,而且还需要包含标准头文件 limits

         cin.ignore( numeric_limits<streamsize>::max(), '\n' );