#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char input[20] = {0};
// 开始60秒关机倒计时
system("shutdown -s -t 60");
// 用户输入循环
again:
printf("请注意你的电脑将在60秒内关机,请输入yes/no来确认或取消:\n");
scanf("%19s", input); // 限制输入长度为19
if (strcmp(input, "yes") == 0) {
// 立即关机
system("shutdown -s -t 0");
// 由于shutdown命令会终止程序,所以这里不需要break或return
}
else if (strcmp(input, "no") == 0) {
// 取消关机
system("shutdown -a");
// 假设shutdown -a命令成功执行,程序可以继续运行
return 0; // 正常退出程序
}
else {
// 提示用户重新输入,并使用goto回到标签处
printf("无效输入,请重新输入yes或no:\n");
goto again;
}
// 由于goto语句的存在,这里实际上不会被执行到
return 0;
}
在多个操作系统中运行包含关机功能的程序,那么您需要确保您的程序能够检测操作系统类型,并使用相应的关机命令。下该代码可以在 Windows 和类 Unix 系统(如 Linux 和 macOS)上运行:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#define SHUTDOWN_COMMAND "shutdown /s /t 0"
#define CANCEL_SHUTDOWN_COMMAND "shutdown /a"
#else
#define SHUTDOWN_COMMAND "shutdown -h now"
#define CANCEL_SHUTDOWN_COMMAND "shutdown -c \"User canceled shutdown.\""
#endif
int main() {
char input[20] = {0};
int shouldShutdown = 0;
// 提示用户电脑将在60秒后关机(这里只是提示,不实际执行)
printf("请注意你的电脑将在60秒后关机(这只是一个示例提示,不会实际执行关机)\n");
// 用户输入循环
again:
printf("请输入yes以立即关机,输入no以取消关机,或者重新输入:\n");
scanf("%19s", input); // 限制输入长度为19
if (strcmp(input, "yes") == 0) {
// 立即关机
system(SHUTDOWN_COMMAND);
// shutdown命令可能会立即终止程序,所以不需要return或break
}
else if (strcmp(input, "no") == 0) {
// 取消关机(仅当实际执行了关机命令时有用)
system(CANCEL_SHUTDOWN_COMMAND);
// 正常退出程序
return 0;
}
else {
// 提示用户重新输入,并使用goto回到标签处
printf("无效输入,请重新输入yes或no:\n");
goto again;
}
// 由于goto语句的存在,这里实际上不会被执行到
// 但为了完整性,我们仍然保留return语句
return 0;
}