从0到1,用C语言写一个关机程序
·
前言
你是否厌倦了每次关机都要点击屏幕上的按钮?想不想用一行代码就让你的电脑乖乖听话?本文将带你从零开始,用C语言亲手打造一个趣味十足的“关机程序”。这个程序不仅能让你的电脑在1分钟后自动关机,还设置了一个有趣的“取消密码”——只有输入“我是猪”才能阻止关机。通过这个简单而有趣的实践项目,你将学习到C语言中system()函数的使用、字符串比较、循环控制等核心知识,并亲身体验编程带来的控制感和乐趣。让我们开始吧!
1.前期准备
1.关机指令
在我们电脑里有一个命令提示符的程序,关于关机的指令及解释如下
2.功能
关机程序的功能如下:
程序运行起来后,电脑就倒计时1分钟关机
如果在1分钟内输入:我是猪,就取消关机
不输入的话,1分钟后就关机
3.关机指令的应用
我们要应用关机指令,就必须要提及一个函数,名为system,用于执行命令。因为关机指令是在系统内执行的,所以要把关机指令传给系统,让系统执行,得到以下2条代码
system("shutdown -s -t 60"); //关机倒计时60s的设定
//注意有空格
system("shutdown -a"); //取消关机操作
在使用该函数时,要包含对应的头文件:#include <stdlib.h>
2.制作程序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char arr[20] = { 0 };
system("shutdown -s -t 60"); //执行关机操作
next:
printf("请注意,你的电脑将于1分钟内关机,如果输入:我是猪,则取消关机\n"); //提示取消关机操作
//由于要求输入:我是猪,它属于字符串,需要字符数组去存储它, 创建char arr[20]={0};
//用户输入
scanf("%s", arr); //arr是随便起的数组名,数组名就是地址,所以不需要&
//用户输入后,进行判断,比较字符串是否相等,要用到字符串比较语句--strcmp
//使用strcmp,要包含的头文件:#include <string.h>
if (strcmp(arr, "我是猪") == 0) //strcmp()判断字符串相等后,会返回0
{
system("shutdown -a"); //取消关机
printf("关机被取消"); //提示
}
else
{
goto next; //输入错误,通过goto语句跳转到取消关机提示处,要求重新输入
}
return 0;
}
3.程序运行结果

总结
通过本文的学习,我们成功实现了一个基于C语言的趣味关机程序。整个过程可以总结为以下几个关键点:
- 核心原理:利用C语言的
system()函数执行Windows系统的shutdown命令,实现了对电脑关机的程序化控制。 - 功能实现:程序启动后设置60秒倒计时关机,并提示用户输入特定字符串“我是猪”来取消关机。这结合了
strcmp()函数进行字符串比较和goto语句实现输入错误的循环重试。 - 知识要点:
system()函数:用于执行系统命令,是实现程序与操作系统交互的桥梁。- 字符串处理:使用字符数组存储用户输入,并通过
strcmp()进行精确比较。 - 流程控制:利用
if-else进行条件判断,使用goto(虽然需谨慎使用)实现了简单的循环逻辑。
这个项目虽然小巧,但它完整地串联了输入、处理、输出、系统调用等多个编程基础概念。你可以在此基础上进行扩展,例如修改倒计时时间、更换取消关机的“密码”,甚至增加图形界面。希望这个有趣的实践能点燃你对编程的热情,并鼓励你探索更多可能!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)