【整蛊】 作为c语言萌新,学会这个关机程序就能整蛊朋友让他跪下唱征服

0 阅读4分钟

目录


前言

作为萌新,既想运用自己新学的c语言整蛊朋友,又担心自己的知识储备不够。接下来介绍的关机程序就是你的最好选择(只能在电脑上使用,手机无效)

1.代码展示

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	char input[20] = { 0 };
	system("shutdown -s -t 60");
	again:
	printf("你电脑将会在1分钟内关机,如果输入:我系250,就取消关机\n");
	system("shutdown -s -t 60");
	scanf("%s", input);
	if (strcmp(input,"我系250") == 0)
	{
		system("shutdown -a");
		printf("请输入文本\n");
	}
	else
	{
		goto again;
	}


	return 0;
}

结果展示 结果展示

二、代码详解

1. 头文件引入与宏定义

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
  • #define _CRT_SECURE_NO_WARNINGS:这是一个预处理指令,用于禁用Visual Studio编译器中的安全警告。在VS中,像scanf这样的函数会被认为是不安全的,加上这个宏可以避免编译时的警告信息。
  • #include<stdio.h>:引入标准输入输出库,提供了printfscanf等函数。
  • #include<stdlib.h>:引入标准库,提供了system函数用于执行系统命令。
  • #include<string.h>:引入字符串处理库,提供了strcmp函数用于字符串比较。

2. 主函数与变量声明

int main()
{
    char input[20] = { 0 };
  • int main():C语言程序的入口函数,程序从这里开始执行。
  • char input[20] = { 0 };:声明一个字符数组input,大小为20个字符,并用0初始化所有元素。这个数组用于存储用户输入的字符串。

3. 系统关机命令

    system("shutdown -s -t 60");
  • system():执行系统命令的函数。
  • "shutdown -s -t 60":Windows系统的关机命令参数:
    • shutdown:关机命令
    • -s:关闭计算机
    • -t 60:设置60秒后关机

4. 标签与循环控制

    again:
    printf("你电脑将会在1分钟内关机,如果输入:我系250,就取消关机\n");
    system("shutdown -s -t 60");
  • again::这是一个标签(label),配合goto语句实现循环跳转。
  • printf():向控制台输出提示信息,告诉用户程序的功能。
  • 再次执行system("shutdown -s -t 60"):确保即使用户输入错误后重新循环,关机计时器也会重新设置为60秒。

5. 用户输入与字符串比较

    scanf("%s", input);
    if (strcmp(input,"我系250") == 0)
    {
        system("shutdown -a");
        printf("请输入文本\n");
    }
    else
    {
        goto again;
    }
  • scanf("%s", input):从标准输入读取字符串,存储到input数组中。%s是字符串格式说明符。
  • strcmp(input,"我系250"):比较input字符串和"我系250"字符串:
    • 返回0表示两个字符串完全相同
    • 返回负数表示input小于"我系250"
    • 返回正数表示input大于"我系250"
  • system("shutdown -a"):取消关机命令。-a参数表示中止系统关闭。
  • goto again;:如果用户输入错误,跳转到again:标签处,重新开始循环。

6. 程序结束

    return 0;
}
  • return 0;:主函数返回0,表示程序正常结束。在C语言中,main函数返回0通常表示成功执行。

程序逻辑流程图

flowchart TD
    A[程序开始] --> B[设置60秒后关机]
    B --> C[显示提示信息]
    C --> D[等待用户输入]
    D --> E{输入是否正确?}
    E -->|是| F[取消关机]
    F --> G[显示提示信息]
    G --> H[程序结束]
    E -->|否| I[跳转到标签处]
    I --> C

注意事项

  1. 安全性:这个程序会实际执行系统关机命令,请在测试时谨慎使用。
  2. 平台依赖shutdown命令是Windows特有的,在Linux或macOS上无法运行。
  3. 字符串比较strcmp函数区分大小写,且比较的是整个字符串。
  4. 缓冲区大小input数组大小为20,如果用户输入超过19个字符(留一个给字符串结束符'\0'),会导致缓冲区溢出。
  5. goto语句:虽然这里使用goto实现了循环,但通常推荐使用whiledo-while循环,代码更清晰易读。

实战演练

记得保存后在文件夹中将后缀改为.exe以做伪装 结果展示

结果展示

非常好用 希望大家能够学会