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

1

文章目录

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


前言

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


一. system函数

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

int system(const char * command)		//参数字符串command为命令名。

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

1.1 system函数清理屏幕

system("cls");

未清除前:
清除屏幕

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


1.2 system函数暂停运行

system("pause");

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

在这里插入图片描述


1.3 system函数电脑关机、重启

1.3.1 电脑关机和延时关机

system("shutdown -s -t 60");	

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


1.3.2 取消电脑关机

system("shutdown -a");	

-a 取消关机


1.3.3 电脑重启和延时重启

system("shutdown -r -t 60");	

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


二、strcmp函数

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

int strcmp( const char *string1, const char *string2 );

strcmp函为字符串比较函数,返回一个整数值
第一个字符串 大于 第二个字符串,则返回 大于0 的数字
第一个字符串 等于 第二个字符串,则返回 0
第一个字符串 小于 第二个字符串,则返回 小于0 的数字

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


三、goto语句

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

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

for (...)
{for (...){for (...){if (disaster)goto error;}}
}
error:...

关于goto语句:
1.不建议使用
2.在一个函数内部使用
3.适用于多层循环跳出的场景
4.不使用goto语句,也能完成效果


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

四、电脑关机小游戏

4.1. 程序要求

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

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

4.2. 游戏代码

#include <stdio.h>
#include <stdlib.h>	//system头文件
#include <string.h>	//strcmp头文件int main()
{char input[20] = { 0 };		//初始化字符串为 0system("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分钟内关机
1

输入错误则需要重新输入
1

输入正确取消关机
1

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

#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函数的使用
期待

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VScode离线下载扩展安装

在使用VScode下在扩展插件时&#xff0c;返现VScode搜索不到插件&#xff0c;网上搜了好多方法&#xff0c;都不是常规操作&#xff0c;解决起来十分麻烦&#xff0c;可以利用离线下载安装的方式安装插件&#xff01;亲测有效&#xff01;&#xff01;&#xff01; 1.找到VScod…

数据结构基础之《(10)—快速排序》

一、快速排序基础 1、Partition过程 给定一个数组arr&#xff0c;和一个整数num。请把小于等于num的数放在数组的左边&#xff0c;大于num的数放在数组的右边。 要求额外空间复杂度O(1)&#xff0c;时间复杂度O(N) 2、例子 区分小于等于num的数 (<区) [5 3 7 2 3 4 1] num…

2023年第十四届蓝桥杯Scratch国赛真题—推箱子

推箱子 程序演示及其源码解析&#xff0c;可前往&#xff1a; https://www.hixinao.com/scratch/creation/show-188.html 若需在线编程&#xff0c;在线测评模考&#xff0c;助力赛事可自行前往题库中心&#xff0c;按需查找&#xff1a; https://www.hixinao.com/ 题库涵盖…

学习threejs,使用VideoTexture实现视频Video更新纹理

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️VideoTexture 视频纹理 二、…

Xilinx PCIe高速接口入门实战(一)

引言&#xff1a;本文对Xilinx 7 Series Intergrated Block for PCI Express PCIe硬核IP进行简要介绍&#xff0c;主要包括7系列FPGA PCIe硬核资源支持、三IP硬核差异、PCIe硬核资源利用等相关内容。 1. 概述 1.1 7系列FPGA PCIe硬件资源支持 7系列FPGA对PCIe接口最大支持如…

浪潮X86服务器NF5280、8480、5468、5270使用inter VROC Raid key给NVME磁盘做阵列

Inter VROC技术简介 Intel Virtual RAID on CPU (Intel VROC) 简单来说就是用CPU的PCIE通道给NVME硬盘做Raid 更多信息可以访问官方支持页面 Raid Key 授权&#xff0c;即VROC SKU 授权主要有用的有2个标准和高级&#xff0c;仅Raid1的授权我暂时没见过。 标准 VROCSTANMOD …

Google Cloud 混合云部署连接方式最佳实践案例讲解

混合云部署连接方式 GCP 的混合云部署连接方式提供了多种选择&#xff0c;企业可以根据自身需求选择合适的解决方案。实施最佳实践&#xff0c;将有助于提高混合云架构的性能、安全性和可用性。通过合理的规划和管理&#xff0c;企业可以充分利用混合云的优势&#xff0c;实现…

计算机网络之应用层协议HTTP

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 应用层协议HTTP 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. HTTP …

PyTorch 2.5.1: Bugs修复版发布

一&#xff0c;前言 在深度学习框架的不断迭代中&#xff0c;PyTorch 社区始终致力于提供更稳定、更高效的工具。最近&#xff0c;PyTorch 2.5.1 版本正式发布&#xff0c;这个版本主要针对 2.5.0 中发现的问题进行了修复&#xff0c;以提升用户体验。 二&#xff0c;PyTorch 2…

集合的相关性质与定义

集合 集合 集合描述了一组对象的集合&#xff0c;而映射描述了集合之间的对应关系。 集合 集合是由一组无序的&#xff0c;互不相同的对象组成的整体&#xff0c;集合中的对象称为元素或成员。集合可以用大括号{}表示,元素之间用逗号进行分隔。 定义&#xff1a; 集合 A …

【Golang】Golang基础语法(二):内建变量类型

内建变量类型 Go 的内建变量类型: bool, string(u)int, int8, int16, int32, int64, uintptr(指针, go的指针比C的指针方便很多)byte(8位), rune(32位)(Go的字符类型, 相当于Go的char类型)float32, float64, complex64, complex128 强制类型转换 Golang 当中的类型转换只能…

文件管理:文件描述符fd

1.前置预备 文件 内容 属性访问文件之前&#xff0c;都必须先打开他 #include<stdio.h> int main() { FILE* fpfopen("log.txt","w"); if(fpNULL) { perror("fopen"); return 1; } fclose(fp); return 0…

电脑显示没信号显示屏不亮怎么办?电脑没信号解决方法

电脑没信号显示屏不亮这种故障的原因可能有多种&#xff0c;例如显示器的供电、连接、设置等问题&#xff0c;或者电脑的显卡、内存、硬盘、主板等硬件问题。所以我们想要解决这个问题&#xff0c;也是需要多方面排除找到具体原因然后进行修复。下面将为大家介绍一些常见的电脑…

WPF从本地文件加载界面

在前面的文章中&#xff0c;我介绍过一种报告模板的实现思路。就是用的XAML本地加载。 WPF使用XAML实现报表的一种思路&#xff08;支持外部加载&#xff09; - zhaotianff - 博客园 在另外一篇文章中&#xff0c;介绍了XAML是如何被转换成对象的。 WPF中的XAML是如何转换成对…

Microi吾码产品深度测评:轻量级企业管理应用的全方位剖析

开源低代码平台-Microi吾码-平台简介 技术框架&#xff1a;.NET8 Redis MySql/SqlServer/Oracle Vue2/3 Element-UI/Element-Plus 平台始于2014年&#xff08;基于Avalon.js&#xff09;&#xff0c;2018年使用Vue重构&#xff0c;于2024年10月29日开源 Vue3试用地址&am…

ArrayList如何深究?最简单的数组~

目录 数组 Array 为什么数组索引从0开始呢&#xff1f;为什么不从1开始&#xff1f; ArrayList 成员变量 构造方法 添加和扩容 ArrayList底层的实现原理是什么&#xff1f; 数组和List转换 ArrayList 和 LinkedList区别 底层数据结构 操作数据效率 内存占用 线程安…

C++ 分治

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 1.分治法 2.二分搜索 函数传参——数组 3.棋盘覆盖 4.合并排序 5.快速排序 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 1.分治法 基…

C++【PCL】利用矩阵对点云进行刚体变换

/** 功能&#xff1a; 点云刚体变换* 头文件&#xff1a; #include <pcl/common/transforms.h>* 功能函数&#xff1a; pcl::transformPointCloud(*pPointCloudIn, *pPointCloudOut, transform_1);*/#include <pcl/io/ply_io.h>#include <iostream>// pcl #i…

Java项目实战II基于微信小程序的文章管理系统的设计与实现 (开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在信息爆炸的时代&#xff0c;内容创作与管理已成为众…

Conda 管理python开发环境

同步发布于我的网站 &#x1f680; 故事起因: 在公司使用Requests多任务并行开发时遇到了问题&#xff0c;使用 ProcessPoolExecutor 时不能正常发出网络请求&#xff0c;会卡在网络请求发不出去&#xff0c;但是善于用 ThreadPoolExecutor 时是可以的,纠结了很久&#xff0c;一…