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); //退出程序
}