您的位置:首页 > 编程语言 > C语言/C++

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

2014-08-13 11:49 351 查看


对于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' );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: