C语言内置函数 system( ) 的功能是向计算机发出 DOS 命令,两个实例如代码清单 1 和代码清单 2 所示。
代码清单 1:用 C语言删除文件(文件的位置为 d:\123.txt )
- #include <stdlib.h>
- #include <stdio.h>
- int main(void)
- {
- system("del d:\\123.txt");
- return 0;
- }
代码清单 2:用 C语言列出程序所在目录的所有文件
- #include <stdlib.h>
- #include <stdio.h>
- int main(void)
- {
- printf("运行DOS命令dir,列出文件目录\n");
- system("dir");
- return 0;
- }
比如在本书前面的源代码中常见的语句:
system("pause"); //实现冻结(暂停)屏幕,便于观察程序的执行结果 system("CLS"); //实现清屏操作 system("dir"); //列出文件目录
而使用 color 选项还可以改变控制台(电脑屏幕)的前景色和背景色(见图 1 )。例如:
system("color 0A"); //color 后面的 0 是背景色代码,A 是前景色代码
各颜色代码如下:
颜色 | 代码 | 颜色 | 代码 | 颜色 | 代码 | 颜色 | 代码 |
---|---|---|---|---|---|---|---|
黑色 | 0 | 蓝色 | 1 | 绿色 | 2 | 湖蓝色 | 3 |
红色 | 4 | 紫色 | 5 | 黄色 | 6 | 白色 | 7 |
灰色 | 8 | 淡蓝色 | 9 | 淡绿色 | A | 淡浅绿色 | B |
淡红色 | C | 淡紫色 | D | 淡黄色 | E | 亮白色 | F |
如果前景色代码和背景色代码相同,计算机会使用默认前景色(亮白色)和默认背景色(黑色)。例如:
system("color AA"); //背景色代码和前景色代码相同时,使用默认设置
上面代码相当于:
system("color 0F"); //默认背景色:黑色,前景色:亮白色
system( )函数实现开关机的实例如代码清单 3 所示。
代码清单 3:C语言调用 DOS 命令实现定时关机
- #include <stdio.h> //包含头文件stdio.h
- #include <string.h> //包含头文件string.h
- #include <stdlib.h> //包含头文件stdlib.h
- int print(){ //自定义函数
- printf("\n\n\n");
- printf(" ╔══════ C语言关机程序════╗\n");
- printf(" ║ ║\n");
- printf(" ║ ※ 1.实现10分钟内的定时关闭计算机║\n");
- printf(" ║ ※ 2.立即关闭计算机 ║\n");
- printf(" ║ ※ 3.注销计算机 ║\n");
- printf(" ║ ※ 0.退出系统 ║\n");
- printf(" ║ ║\n");
- printf(" ╚═════════════════╝\n\n");
- printf(" 请选择输入(0-3),然后回车:");
- return 0;
- }
- void main(){
- system("title C语言关机程序"); //设置cmd窗口标题
- system("mode con cols=48 lines=25"); //设置窗口宽度高度
- system("color 0B"); //设置窗口内背景色和前景色
- system("date /T"); //显示当前日期
- system("TIME /T"); //显示当前时间
- char cmd[20]="shutdown -s -t ";
- char t[5]="0";
- print(); //调用自定义函数print()
- int c;
- //scanf("%d",&c); //获取键盘输入
- c=getchar(); //获取键盘输入的一个字符
- switch(c){
- case 1:printf("您想多少秒后自动关机?(0~600)\n");
- scanf("%s",t);
- system(strcat(cmd,t));break; //连接两个字符串
- case 2:system("shutdown -p");break; //自动关机
- case 3:system("shutdown -l");break; //自动注销
- case 0:break;
- default:printf("Error!\n");
- }
- system("pause"); //锁定屏幕
- exit(0); //退出程序
- }