文章目录
- 前言
- 一. 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.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 码值大小)
三、goto语句
goto语句可以实现在同⼀个函数内跳转到设置好的标号处,例如下图代码goto语句执行后跳转到next所在行了。
goto语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以建议尽量不使⽤;但是 goto 语句也不是⼀⽆是处,在快速跳出多层循环时,使⽤ goto 就⾮常的⽅便,例如如下伪代码:
for (...)
{
for (...)
{
for (...)
{
if (disaster)
goto error;
}
}
}
error:
...
关于goto语句:
1.不建议使用
2.在一个函数内部使用
3.适用于多层循环跳出的场景
4.不使用goto语句,也能完成效果
学习了上述函数和语句,我们就可以实现一个电脑关机的小游戏了~
四、电脑关机小游戏
4.1. 程序要求
- 程序运行起来,你的电脑在1分钟内关机
- 但是输入:“我是猪”,就取消关机
- 如果输入错误,则在1分钟内反复输入,直至输入正确或者时间耗尽
这个小游戏代码实现比较简单,咱们重在上面的学习,直接上代码也能看得懂,解释在代码注释里。
4.2. 游戏代码
#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 语句也可以完成任务
#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函数的使用