C语言system()函数的用法

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 是前景色代码

使用 system( ) 改变控制台(电脑屏幕)的前景色和背景色
图 1:使用 system( ) 改变控制台(电脑屏幕)的前景色和背景色

各颜色代码如下:

表 1:各颜色代码
颜色 代码 颜色 代码 颜色 代码 颜色 代码
黑色 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);            //退出程序
}