电脑关机的趣味小游戏——system函数、strcmp函数、goto语句的使用

文章目录

  • 前言
  • [一. system函数](#一. system函数)
      • [1.1 system函数清理屏幕](#1.1 system函数清理屏幕)
      • [1.2 system函数暂停运行](#1.2 system函数暂停运行)
      • [1.3 system函数电脑关机、重启](#1.3 system函数电脑关机、重启)
  • 二、strcmp函数
  • 三、goto语句
  • 四、电脑关机小游戏
      • [4.1. 程序要求](#4.1. 程序要求)
      • [4.2. 游戏代码](#4.2. 游戏代码)
  • 总结

前言

今天我们写一点稍微有趣的代码,比如写一个小程序使电脑关机,代码比较简单好理解,我们的重点在于学习system函数strcmp函数goto语句的使用。


一. system函数

system函数可以简单理解为对计算机系统进行操作的函数 ,使用system函数要包含头文件 #include <stdlib.h>。函数原型:

c 复制代码
int system(const char * command)		//参数字符串command为命令名。

system()函数如何使用呢?这里举几个例子。

1.1 system函数清理屏幕

c 复制代码
system("cls");

未清除前:

清除后,可以看见之前的数字都被清除重新打印了:


1.2 system函数暂停运行

c 复制代码
system("pause");

代码如下,可以看到运行被暂停了,按任意键程序才会继续。


1.3 system函数电脑关机、重启

1.3.1 电脑关机和延时关机

c 复制代码
system("shutdown -s -t 60");	

-s 关闭计算机
-t 设置时间参数
60 设置的秒数
如果删除后两项,则运行之后电脑马上关机


1.3.2 取消电脑关机

c 复制代码
system("shutdown -a");	

-a 取消关机


1.3.3 电脑重启和延时重启

c 复制代码
system("shutdown -r -t 60");	

/r 重启电脑
-t 设置时间参数
60 设置的秒数
如果删除后两项,则运行之后电脑马上重启


二、strcmp函数

strcmp函数用来比较两个字符串的大小 ,使用strcmp函数要包含头文件 #include <string.h>

函数原型:

c 复制代码
int strcmp( const char *string1, const char *string2 );

strcmp函为字符串比较函数,返回一个整数值

第一个字符串 大于 第二个字符串,则返回 大于0 的数字

第一个字符串 等于 第二个字符串,则返回 0

第一个字符串 小于 第二个字符串,则返回 小于0 的数字

一般大家都会对strcmp函数产生误解,以为strcmp是比较两个字符串的长度,其实不是的。strcmp是比较字符串中对应位置上的字符大小(ASCII 码值大小)


三、goto语句

goto语句可以实现在同⼀个函数内 跳转到设置好的标号处,例如下图代码goto语句执行后跳转到next所在行了。

goto语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以建议尽量不使⽤ ;但是 goto 语句也不是⼀⽆是处,在快速跳出多层循环时,使⽤ goto 就⾮常的⽅便,例如如下伪代码:

c 复制代码
for (...)
{
	for (...)
	{
		for (...)
		{
			if (disaster)
				goto error;
		}
	}
}
error:
	...

关于goto语句:

1.不建议使用

2.在一个函数内部使用

3.适用于多层循环跳出的场景

4.不使用goto语句,也能完成效果


学习了上述函数和语句,我们就可以实现一个电脑关机的小游戏了~

四、电脑关机小游戏

4.1. 程序要求

  1. 程序运行起来,你的电脑在1分钟内关机
  2. 但是输入:"我是猪",就取消关机
  3. 如果输入错误,则在1分钟内反复输入,直至输入正确或者时间耗尽

这个小游戏代码实现比较简单,咱们重在上面的学习,直接上代码也能看得懂,解释在代码注释里。

4.2. 游戏代码

c 复制代码
#include <stdio.h>
#include <stdlib.h>	//system头文件
#include <string.h>	//strcmp头文件

int main()
{
	char input[20] = { 0 };		//初始化字符串为 0
	system("shutdown -s -t 60");	//电脑1分钟内关机
again:
	printf("您的电脑将在一分钟后关机,请输入"我是猪"取消关机。\n");
	scanf("%s", &input);
	if (strcmp(input, "我是猪") == 0)	//字符串的比较不能用> < == >= <= !=,要使用strcmp函数
	{
		system("shutdown -a");	//如果输入"我是猪"则取消关机
		printf("还算配合,取消关机。\n");
	}
	else
	{
		goto again;		//否则跳转到again行,进行重新输入
	}
	return 0;
}

程序运行,电脑1分钟内关机

输入错误则需要重新输入

输入正确取消关机

当然这里不使用 goto 语句也可以完成任务

c 复制代码
#include <stdio.h>
#include <stdlib.h>	//system头文件
#include <string.h>	//strcmp头文件

int main()
{
	char input[20] = { 0 };	
	system("shutdown -s -t 60");
	
	while(1)
	{
		printf("您的电脑将在一分钟后关机,请输入"我是猪"取消关机。\n");
		scanf("%s", &input);
		if (strcmp(input, "我是猪") == 0)
		{
			system("shutdown -a");
			printf("还算配合,取消关机。\n");
			break;
		}
	}
	return 0;
}

总结

今天学习了用代码写一些趣味小游戏,这篇文章是用system等函数语句做了一个电脑关机的小游戏,大家可以去试试,或者捉弄一下朋友。程序比较简单,但是咱们重在学习知识 ~

预告下篇博客 ------ 猜数字的趣味小游戏------rand函数、srand函数、time函数的使用

相关推荐
云水木石4 小时前
配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公
电脑
wirepuller_king4 小时前
创建Linux虚拟环境并远程连接,finalshell自定义壁纸
linux·运维·服务器
Yan-英杰5 小时前
【百日精通JAVA | SQL篇 | 第二篇】数据库操作
服务器·数据库·sql
风123456789~5 小时前
【Linux运维】查询指定日期的上月
linux·运维·服务器
CC.cc.6 小时前
Linux系统之systemctl管理服务及编译安装配置文件安装实现systemctl管理服务
linux·运维·服务器
Json____7 小时前
uni-app 框架 调用蓝牙,获取 iBeacon 定位信标的数据,实现室内定位场景
uni-app·电脑·蓝牙·蓝牙信标 beacon·定位信标·停车场定位
电星托马斯7 小时前
C++中顺序容器vector、list和deque的使用方法
linux·c语言·c++·windows·笔记·学习·程序人生
爱写代码的小朋友8 小时前
华三交换机配置常用命令
运维·服务器·网络
wangjun51598 小时前
jenkins 参数化发布到服务器 publish over ssh、label、Parameterized publishing
服务器·ssh·jenkins
愚润求学8 小时前
【Linux】Linux权限
linux·服务器·语法