刚开始学C语言或C++的朋友,在做编程习题的时候一般都会碰到这个问题。就是编译出来的控制台程序在执行时往往一闪而过,看不到输出的结果,根本和书里或视频里说的不一样啊~。明明书里写的是运行完会出现个 Press any key to continue... 的字样。怎么到自己这就刷一下窗口就自动关闭了。

其实,大部分教程书籍都几乎是20年前的课本了。而当时的编程环境还是 Turbo C 或者 VC++ 6.0 时代。现在最新版的 Visual Studio 都到了 2017了,连很多代码都变了。当然会有所不同。不过还是有解决办法的。解决办法还不止一个~~

方案1:

1
system("pause");

在返还代码 return 之前,写入 system("pause"); 即可暂停程序,屏幕会显示熟悉的 Press any key to continue... 的字样。

不过在使用 system() 函数调用的时候需要引用 stdio.h 和 stdlib.h 这两个头文件。

方案2:

同样写在返还代码 return 之前,写入 system("pause"); 即可暂停程序。与 system("pause") 不同的是, getchar(); 只有按回车才会返回。而 Pause 是按任意键。

方案3:

1
std::cin.get();

如果使用 std::cin.get() ,需要引用 iostream 库文件
注意: iostream 是c++ 的输入输出 标准库(标准库是编译器自带的函数库) 头文件,里面有 输入输出 class 定义。 C 程序并不需要它。

一个基本的输入输出的 C 程序应该是这样子的

1
2
3
4
5
6
7
8
9
#include <stdio.h>  // 输入输出标准库函数头文件
#include <stdlib.h>  // 标准函数库的头文件

int main()
{
    printf("hello world!\n");
    system("pause");
    return 0;
}

而标准输入输出的 C++ 程序应该是这样子的

1
2
3
4
5
6
7
8
#include <iostream>  // C++ 输入输出标准库函数头文件

int main()
{
    printf("hello world!\n");
    std::cin.get();
    return 0;
}

因为 C++ 只是 C语言的增强版,所以也向下兼容C语言。所以像 cin.get(); 并不能用在C语言环境中。开发C语言程序只能用 stdio.h , 而在 C++ 用stdio/iostream 都可以。不过在开发C++时,还是推荐使用 iostream 。