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

目录

  • [1. 代码展示](#1. 代码展示 "#1%E4%BB%A3%E7%A0%81%E5%B1%95%E7%A4%BA")
  • 二、代码详解
    • [1. 头文件引入与宏定义](#1. 头文件引入与宏定义 "#1-%E5%A4%B4%E6%96%87%E4%BB%B6%E5%BC%95%E5%85%A5%E4%B8%8E%E5%AE%8F%E5%AE%9A%E4%B9%89")
    • [2. 主函数与变量声明](#2. 主函数与变量声明 "#2-%E4%B8%BB%E5%87%BD%E6%95%B0%E4%B8%8E%E5%8F%98%E9%87%8F%E5%A3%B0%E6%98%8E")
    • [3. 系统关机命令](#3. 系统关机命令 "#3-%E7%B3%BB%E7%BB%9F%E5%85%B3%E6%9C%BA%E5%91%BD%E4%BB%A4")
    • [4. 标签与循环控制](#4. 标签与循环控制 "#4-%E6%A0%87%E7%AD%BE%E4%B8%8E%E5%BE%AA%E7%8E%AF%E6%8E%A7%E5%88%B6")
    • [5. 用户输入与字符串比较](#5. 用户输入与字符串比较 "#5-%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%E4%B8%8E%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%AF%94%E8%BE%83")
    • [6. 程序结束](#6. 程序结束 "#6-%E7%A8%8B%E5%BA%8F%E7%BB%93%E6%9D%9F")
    • 程序逻辑流程图
    • 注意事项
  • 实战演练

前言

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

1.代码展示

c 复制代码
#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. 头文件引入与宏定义

c 复制代码
#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. 主函数与变量声明

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

3. 系统关机命令

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

4. 标签与循环控制

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

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

c 复制代码
    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. 程序结束

c 复制代码
    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以做伪装

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

相关推荐
jobBridge2118 小时前
大模型到底是怎么"想"的?我把 Transformer 拆开,发现它其实是个"接词狂魔"
人工智能·后端·编程语言
柒号华仔1 天前
「速通Shell」Shell 循环与遍历
shell·编程语言
郝学胜_神的一滴3 天前
C++20 高级编程 002:夯实现代C++底层基本功
c++·编程语言
渣男教父4 天前
Python游戏自动化实战案例
python·编程语言
junuo5 天前
10_C++内存分区与动态内存管理
c++·编程语言
程序员天天困5 天前
Spring Boot i18n 国际化实战:从资源文件到多语言接口完整指南
spring boot·后端·编程语言
gbshha7 天前
扫雷游戏的C语言实现
编程语言
渣男教父7 天前
Python-lxml 与 XPath 实战
python·编程语言