前言

你是否厌倦了每次关机都要点击屏幕上的按钮?想不想用一行代码就让你的电脑乖乖听话?本文将带你从零开始,用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语言的趣味关机程序。整个过程可以总结为以下几个关键点:

  1. 核心原理:利用C语言的system()函数执行Windows系统的shutdown命令,实现了对电脑关机的程序化控制。
  2. 功能实现:程序启动后设置60秒倒计时关机,并提示用户输入特定字符串“我是猪”来取消关机。这结合了strcmp()函数进行字符串比较和goto语句实现输入错误的循环重试。
  3. 知识要点
    • system()函数:用于执行系统命令,是实现程序与操作系统交互的桥梁。
    • 字符串处理:使用字符数组存储用户输入,并通过strcmp()进行精确比较。
    • 流程控制:利用if-else进行条件判断,使用goto(虽然需谨慎使用)实现了简单的循环逻辑。

这个项目虽然小巧,但它完整地串联了输入、处理、输出、系统调用等多个编程基础概念。你可以在此基础上进行扩展,例如修改倒计时时间、更换取消关机的“密码”,甚至增加图形界面。希望这个有趣的实践能点燃你对编程的热情,并鼓励你探索更多可能!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐