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

相关推荐
weixin_434255616 分钟前
命令行快速上传文件到SFTP服务器(附参考示例)
linux·运维·服务器
掘金-我是哪吒23 分钟前
分布式微服务系统架构第133集:运维服务器6年经验,高并发,大数据量系统
运维·服务器·分布式·微服务·系统架构
技术流浪者25 分钟前
C/C++实践(十)C语言冒泡排序深度解析:发展历史、技术方法与应用场景
c语言·数据结构·c++·算法·排序算法
Funny-Boy1 小时前
Reactor (epoll实现基础)
服务器·网络·c++
***似水流年***1 小时前
Linux任务管理与守护进程
linux·运维·服务器
IP管家3 小时前
企业级IP代理解决方案:负载均衡与API接口集成实践
服务器·网络·数据库·网络协议·tcp/ip·容器·负载均衡
愚润求学3 小时前
【Linux】进程间通信(一):认识管道
linux·运维·服务器·开发语言·c++·笔记
专注VB编程开发20年3 小时前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
光不度AoKaNa3 小时前
计算机操作系统概要
linux·运维·服务器
Clownseven3 小时前
[IP地址科普] 服务器公网IP、私网IP、弹性IP是什么?区别与应用场景详解
服务器·网络协议·tcp/ip