system 函数
这是我们第1小节写的Hello World程序代码:
//--------------------------------------------------------------------------- #pragma hdrstop #include <iostream> #include <cstdlib> //--------------------------------------------------------------------------- #pragma argsused
|
我们现在建立的程序,都属于“控制台应用程序”。那么什么是“控制台”呢?简单地说,“控制台”就是操作系统提供的一个字符界面的窗口,那么……
有同学站起来:那么,“什么叫操作系统”?——存心捣乱,前面的课程有没有看嘛?直接拖出去教室。
那么,什么叫“字符界面”呢?
说来放长。早在10好几年前,我和我的同学们,一个个青春焕发、英俊潇洒、斗志昂扬地坐在学校机房里286电脑面前时,那电脑屏幕就是一个黑黑框,那时使用的操作系统叫DOS,后来,有个同学有钱,买了台386,上面运行的操作系统是Windows 3.1;人家说,那就是传说中的“图形用户界面”操作系统,简称“GUI”操作系统。
如此,操作系统就有“字符用户界面”和“图形用户界面”之分。
又有同学站起来,一脸疑惑:“老师,我用的电脑屏幕也只是一个黑黑的框啊?”——我走过去看了看,原来是没有开机!直接从窗口扔出去。
但是!在图形用户界面的操作系统里,往往都带了一个模拟的“字符界面”小系统,用来让低级用户直接输入控制命令,以实现和系统交互,这就叫作“控制台”。因此,严格地说,“控制台”并不是DOS操作系统,因为它只是在图形 用户界面的操作系统,模拟出来的,内嵌的,一个“字符界面”小系统,并不能单独存在。
又有同学起来问了:“低级用户直接在控制台里输入控制命令,以实现和系统交互,那么,高级用户呢?”
嗯!这个问题问得好。这里的“低级”仅仅是说有些用户对操作系统有更深的了解,从而可以使用到一些相对“底层”些的功能,事实上所有用户都是平等的。“高级”用户就是用键盘 等设备,特别是鼠标来和图形界面的操作系统进行交互。比如,每个人都会通过鼠标拖动,来实现移动某个文件从一个文件到另一个文件夹,是吧?有不会的?先去把Windows基本操作学好了再来学编程吧。
在计算机的术语里,“低级”往往表示接近底层逻辑,比如硬件。因此,“低级”往往表示一种“困难”。比如,我们学的C++称为“高级语言”(Java或C#更高级些),C则可以称为是“中级语言”,而汇编语言称为“低级语言”,但大家要知道,汇编语言很难的噢。 |
说半天,来看看控制台长什么样子:
通过点击“开始”按钮,找到开始菜单里的“运行(R)……”菜单项,点击,就出现窗口:(现在明白为什么我要求各位熟练掌握Windows操作了吧?)
(运行窗口)
如上图,输入cmd……
如果你还在用Windows98或WindowsME或更早的Win98,那么请输入 command ,并且建议你升级系统到Windows2000或者XP(推荐,因为我就是),或者2003。 后面的课程中,我们所指的操作系统,都是指Win2000,XP,或2003。 另外,由于笔者的电脑装了一些Windows桌面主题,而笔者在心情差的时候,最爱做的事情之一就是把主题换来换去;所以,不必在意我的某些截图的长相可能和你电脑上的不太一样, |
输入后,按回车键,或点击“确定”按钮,就可以看到一个黑黑的窗口了。
松一口气,我们把今天课程的背景知识讲完了,也就是,什么叫“控制台”。
又有同学问:“我们现在写的程序叫‘控制台应用程序’,我现在懂了什么叫‘控制台’,可是什么叫‘应用程序’呢?”——今天课程怎么这么多废话呢?一会儿就知道了啦。开始我们《第一感受》的最后一小节的正题吧。
第5小节:system 函数
std::system("pause"); //让程序暂停
要调用该函数,必须在前面包含:
#include <cstdlib>
重复一下:c表示这个函数在C语言里也是通用的,std表示标准(当然是C的标准噢),lib表示“库”。即C语言里的标准库。那么system就是一个C语言标准库里的标准函数了。当然,如果我们要用纯C语言来使用这个函数,代码会略有不同,由于我们教的是C++,所以区别是什么不说也罢。
system函数可以执行你发出的控制台命令。当然,得用英文的双引号将命令括起来,以表示一句话。不过,你也可以直接在控制台输入这个命令,当然,那时就不用引号了。前面我们已经学会如何通过“运行”命令来搞出一个控制台窗口,现在你只需在那个窗口里输入pause试试。
在我们程序里,执行效果是一样的。
最后我说一句,和控制台相关的函数或代码,一般无法在“图形用户界面”里使用 。有关为什么我们要选择先学习“控制台”的程序,而不是直接学习“图形用户界面”编程,请参看预备课程。 |
(为什么这节课废话这么多?因为这节课不是重点,大家轻松点啦。加上正题也短,如果没有几位同学的举手发言,很无聊啊。)
作业:
1、将system("pause")中的“pause”一词,改为“Pause”,试试控制台命令是否区分大小写?
2、在system("pause")之前,插入一行:
std::system("dir");
编译,执行,看看是什么结果?