C语言程序的暂停 此为收费教程,尊重作者的原创,请到http://c.biancheng.net/cpp/u/jiaocheng/,缴费学习,我这边隐藏文章内容,供自己学习之用。

先来看一段简单的C语言代码:

1
2
3
4
5
6
#include <stdio.h>
int main()
{
    printf("C语言中文网\n");
    return 0;
}

在 VC6.0、C-Free 下点击“运行”按钮,会看到如下的效果:
第4章 C语言输入输出 8、C语言程序的暂停

程序运行到最后会自动暂停,并添加一行提示“请按任意键继续...”。用户按下键盘上的任何一个键,程序就退出了。而当我们在VS下点击“运行”按钮时,或者在工程目录下找到生成的 .exe 程序双击运行时,却只能看到一个黑影一闪而过。这是为什么呢?

main() 是程序的入口函数,同时也是退出函数。程序从 main() 开始执行,main() 结束时就退出,也即销毁进程。上面的代码中,仅有一条输出语句,没有暂停语句,程序运行到最后就会自动关闭,这是正常的流程。由于程序从执行到退出的时间非常短,窗口出现后瞬间消失,所以只能看到一道黑影。

而在 VC6.0、C-Free 下点击“运行”按钮时,IDE 会自动添加暂停功能,所以程序不会立即退出。这也迷惑了部分初学者,让大家误以为C程序本来就应该暂停的。其实不然,对于上面的示例,一闪而过的黑影才是正常的流程。

自己添加暂停功能

VC 6.0、C-Free 自动添加的暂停功能给我们提供了方便,让我们能够查看程序的运行结果。但如果在VS下运行程序,或者希望将自己的 .exe 程序分享给朋友,那就必须手动添加暂停功能。

添加暂停功能有两种思路:一种是真正的暂停,两外一种是模拟暂停效果。

1) 使用 system() 函数

system() 函数位于 stdlib.h 头文件,用来执行系统命令,也就是 Windows 下的 DOS 命令,或 Linux 下的 Shell 命令。

在 Windows 下,pause 命令用来暂停程序的执行,代码如下:

1
2
3
4
5
6
7
8
#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("C语言中文网\n");
    system("pause");  // pause不区分大小写,也可以写作PAUSE
    return 0;
}

在 VS 下点击“运行”按钮,或者双击生成的 .exe 运行,效果如下:
第4章 C语言输入输出 8、C语言程序的暂停

在 VC6.0、C-Free 下点击“运行”按钮的效果:
第4章 C语言输入输出 8、C语言程序的暂停

pause 是 DOS 下的命令,所以system("pause");只适用于Windows。而 Linux 下的 Shell 没有类似的命令,所以使用 system() 函数暂停程序比较困难。

2) 模拟暂停功能

所谓暂停,无非是先输出提示语句,再等待用户输入,我们可以用C语言中的输入输出函数来模拟。请看下面的代码:

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <conio.h>
int main()
{
    printf("C语言中文网\n");
    //模拟暂停功能
    printf("按任意键继续...");
    getch();
    return 0;
}

第7行代码用来输出提示语,第8行代码用来等待用户输入,但不显示输入内容。读者也可以更改提示语,或者将第7行代码删除。

由于 conio.h 是Windows下的头文件,Linux下没有,所以这种方式也只适用于Window。

总结:上面是Windows下常用的两种暂停程序的方法,读者可以根据自己的喜好来选择。

最后需要说明的是,Linux 下的C程序一般是通过终端(Terminal)来运行,程序关闭后会留下输出结果,所以不需要暂停功能,这里也就不再讲述了。

» 订阅本站: http://www.0523jz.com/feed