「C++小游戏教程」基本技巧(2)——系统 DOS 命令

时间:2022-11-10 11:54:39

0. 引言

在 (1) 中,我在使用 random_shuffle() 时加了一个 system("pause");。其中 system() 是系统发出 DOS 命令的函数,原型为 int system(char *command);。我们今天就来谈谈这个函数的主要功能用途。

附:本节讲的是 Windows 下的 system()。

1. 冻结屏幕——system(“pause”);

在早期的 C/C++ 编译器中,本地运行后的结果会一闪而过。这时,便可以用 system("pause"); 来冻结屏幕,等待用户按键后再执行下面的程序。
直接把上一章的图拿来:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令
其中的 请按任意键继续. . . 就是 system("pause"); 给予的效果。


2. 清屏——system(“cls”);

一个小游戏,在屏幕上堆砌过多的文字必定是不行的,于是我们可以用 system("cls"); 来实现清空运行窗口中的文字。
效果:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令
可以发现,114514 被清除了,取而代之的是 1919810。


3. 设置窗口标题——system(“title X”);

窗口标题是 .exe 文件地址,必定是不美观的。于是,我们可以通过 system("title X"); 来设置运行窗口标题(其中 X 是标题内容)。
效果:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令

4. 设置窗口大小——system(“mode con cols=X lines=Y”);

设置一个合适的窗口大小,也是关键。
我们可以用 system("mode con cols=X lines=Y"); 设置窗口列数和行数(X 为列数,Y 为行数)。
效果:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令


5. 设置背景色和前景色——system(“color XY”);

有时,我们需要丰富的颜色。
于是就可以调用 system("color XY"); 来改变整个窗口的颜色了。
其中 XY 分别为背景色和前景色,都是一位十六进制数。
每个数所代表的颜色如下:

    0 = 黑色       8 = 灰色
    1 = 蓝色       9 = 淡蓝色
    2 = 绿色       A = 淡绿色
    3 = 浅绿色     B = 淡浅绿色
    4 = 红色       C = 淡红色
    5 = 紫色       D = 淡紫色
    6 = 黄色       E = 淡黄色
    7 = 白色       F = 亮白色

附:如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时的颜色。

效果:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令


6. 显示日期与时间——system(“date /t”); 与 system(“time /t”);

两者功能很明显,就是显示日期、时间。
效果:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令


注:以下为恶搞相关!

7. 删除文件——system(“del X”);

用于删除文件,其中 X 为文件地址。


8. 定时关机——system(“shutdown -s -t X”)

用于定时关机,其中 X 为秒数。


9. 取消关机——system(“shutdown -a”);

下有对策,上有政策。这个命令可以取消之前的所有关机计划。


10. 滑动关机——system(“slidetoshutdown”);

这个命令在较高版本的 Windows 里才会有,就是滑动以关机。
效果:
「C++小游戏教程」基本技巧(2)——系统 DOS 命令


11. 后记

在某些意义上说,system(); 就是在C/C++ 中调用 cmd 的命令而已,里面还有包括像 dir、doskey 等许多的命令,当然可以用到 C/C++ 小游戏中的,自然就只有其中一部分了。细心的读者可以发现笔者写文章的时间。
那下面几期基本技巧,为我们会讲到一些关于 windows.h/conio.h 中的函数,敬请期待!