刚开始学C语言或C++的朋友,在做编程习题的时候一般都会碰到这个问题。就是编译出来的控制台程序在执行时往往一闪而过,看不到输出的结果,根本和书里或视频里说的不一样啊~。明明书里写的是运行完会出现个 Press any key to continue... 的字样。怎么到自己这就刷一下窗口就自动关闭了。
其实,大部分教程书籍都几乎是20年前的课本了。而当时的编程环境还是 Turbo C 或者 VC++ 6.0 时代。现在最新版的 Visual Studio 都到了 2017了,连很多代码都变了。当然会有所不同。不过还是有解决办法的。解决办法还不止一个~~
方案1:
1 |
在返还代码 return 之前,写入 system("pause"); 即可暂停程序,屏幕会显示熟悉的 Press any key to continue... 的字样。
不过在使用 system() 函数调用的时候需要引用 stdio.h 和 stdlib.h 这两个头文件。
方案2:
1 |
同样写在返还代码 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 |
而标准输入输出的 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 。