电脑关机的趣味小游戏——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函数的使用

相关推荐
Lbs_gemini060332 分钟前
C++研发笔记14——C语言程序设计初阶学习笔记12
c语言·开发语言·c++·笔记·学习
Curtis09801 小时前
RHCE——Ubuntu Linux操作系统
linux·服务器·ubuntu
青瓷看世界1 小时前
华为HarmonyOS 让应用快速拥有账号能力 -- 1 华为账号一键登录
服务器·华为·harmonyos·应用账号能力
搬砖的果果5 小时前
HTTP代理有那些常见的安全协议?
服务器·python·网络协议·tcp/ip
运维&陈同学5 小时前
【Dubbo03】消息队列与微服务之dubbo-admin 二进制与编译安装
linux·运维·服务器·后端·微服务·云原生·架构·dubbo
不像程序员的程序媛5 小时前
记录下nginx接口代理配置问题
运维·服务器·nginx
jupiter_8886 小时前
Java NIO channel
java·服务器·nio
玉石俱焚ing6 小时前
ubuntu无线网络共享到有线
运维·服务器·ubuntu
weixin_442643426 小时前
工程设计行业内外网文件交换解决方案:FileLink助力高效、安全的跨网协作
运维·服务器·安全·filelink内外网文件交换
没有名字的鬼6 小时前
C_字符串的一些函数
c语言·开发语言·算法