gpt4 book ai didi

c - ANSI C 中的简单延迟关闭应用程序,开关也表现得很奇怪

转载 作者:行者123 更新时间:2023-11-30 15:04:17 26 4
gpt4 key购买 nike

一开始我想指出一个事实,我是 C 和编程的完全初学者。我正在尝试制作一些简单的控制台应用程序来安排我的电脑的延迟关闭。这是我的代码:

   int main()
{
int minutes, seconds;
char command[50];
char sa;

printf("(s)hutdown or (a)bort?. 0 to exit.\n");
scanf("%c", &sa);
switch (sa)
{
case 's':
printf("How many minutes till shutdown\n");
scanf("%d\n", &minutes);
seconds = minutes * 60;
sprintf(command, "shutdown /s /f /t %d\n", seconds);
system(command);
system("exit");

case 'a':
sprintf(command, "shutdown /a");
system(command);
system("exit");

default:
printf("Bad choice.");
system("exit");
}

return 0;
}

我的问题是:
1. 当我选择“s”时,写下适当的分钟数并按 Enter system('exit') 应该关闭控制台,但这不起作用。我必须写下任何东西才能关闭它。即使在这种情况下“a”仍然被执行,取消任何延迟关闭。
2.选择“s”或“a”后,也会执行默认情况。所以我得到的输出总是以“错误的选择”结束。

有人可以帮我解决我的(可能是愚蠢的)问题吗?非常感谢您的帮助!

最佳答案

系统函数启动一个新的shell,所以

system("exit");

将从新的 shell 退出,将执行控制权返回给您的程序。

要终止父 shell,您可以向其发送 SIGHUP 信号。

关于c - ANSI C 中的简单延迟关闭应用程序,开关也表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40346024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com