前段时间在学习 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;
}