我竟然用 C 语言写了一个随机关机程序!

前段时间在学习 C 语言时,制作了一个随机关机的程序,玩的还不错,快来整蛊一下同学吧~

1 前置知识

1.1 system() 函数

这个函数在 C 和 C++ 中是一个神奇的存在,在它的括号中,能够接受字符串参数,即包含命令行中的各种执行命令。
示例:

system("对应的命令行");

1.2 shutdown 命令

这个命令是用来关闭或者重启计算机的,在不同的操作系统中有不同的用法和选项,因为大多数用的 Windows 系统,所以只以 Windows 为例(Linux 后续更新 )。
示例:

shutdown /s /f /t <时间>

解释:
/s:表示关闭计算机。
/f:表示强制关闭应用程序(有些电脑关机时,会自动阻止关机,这个可以强制关闭)。
/t:表示等待时间,单位为秒。
如果想在 10秒内关闭计算机,就可以使用下面的命令:

shutdown /s /f /t 10

1.3 sprintf() 函数

这个函数是 C 标准库中的一个函数,作用是将格式化的数据写入字符串中,它是 printf 的变体,与 printf 不同的是,printf 是将输出写入标准输出流(通常是屏幕)中,而 sprintf 则是写入到字符串中。
示例:

int sprintf(char *str, const char *format, ...);

这是比较专业的函数使用,不需要太理解,只需要知道每个逗号前面代表的意思即可。
str:代表字符数组,注意是字符数组。用来存储格式化输出的字符串。
format:代表格式控制字符串,指定输出的格式,可以包含很多种字符。
…:代表可变参数,通常用于提供值。
下面举一个例子,用 sprintf 将字符数组 “Hello World” 存入字符数组 str 中。

char str[100];//定义一个字符数组,用于存储
int a=10;//定义一个变量a,并赋值成 10
sprintf(str,"HelloWorld%d",a);//将 HelloWorld 存储到字符数组str中,%d 代表一个数值,对应a。

1.4 rand() 函数

这个是 C 标准库中用于生成伪随机数的函数,通常和 srand() 函数结合使用。
需用用到 #include<ctime>#include<cstdlib> 头文件,如果记不住,直接使用 #include<bits/stdc++.h> 即可~
示例:

srand(time(0));//将随机数种子置为0
rand()%10;//表示产生0-9之间的随机数,通常需要用变量来存储

2 程序实现

学习完前置知识之后,基本就可以完成程序啦!
第一步:定义好一个字符数组,用于存储产生随机秒数关机的命令。

char str[100];

第二步:产生随机数,建议在 10 秒以内~

srand(time(0));
int x=rand()%10;//产生一个0-9之间的随机数,存储在x中

第三步:用 sprintf 将命令存储在 str 字符数组中。

sprintf(str,"shutdown /s /f /t %d",x);

第四步:执行 system() 函数。

system(str);

以上,即完成程序制作!

3 完整代码

完成之后,可以将程序伪装成快捷方式等,一起来整蛊同学吧~

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main()
{
	char str[100]; 
	srand(time(0));
	int x=rand()%10;//产生一个0-9之间的随机数,存储在x中
	sprintf(str,"shutdown /s /f /t %d",x);
	system(str);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员莫小特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值