system 函数[转自第2学堂]

system 函数

这是我们第1小节写的Hello World程序代码:

//---------------------------------------------------------------------------

#pragma hdrstop

#include <iostream>
#include <cstdlib>

//---------------------------------------------------------------------------

#pragma argsused


int main(int argc, char* argv[])
{

    //输出对世界的问候:
    std::cout << "Hello world!" << std::endl;

    std::system("pause");  //让程序暂停

    return
0;
}

//---------------------------------------------------------------------------

(第1小节的代码:hello/ch1)

我们现在建立的程序,都属于“控制台应用程序”。那么什么是“控制台”呢?简单地说,“控制台”就是操作系统提供的一个字符界面的窗口,那么……

有同学站起来:那么,“什么叫操作系统”?——存心捣乱,前面的课程有没有看嘛?直接拖出去教室。

那么,什么叫“字符界面”呢?

说来放长。早在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");

编译,执行,看看是什么结果?

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值