gpt4 book ai didi

c - 在 while(1) 中离开开关

转载 作者:行者123 更新时间:2023-12-02 06:27:12 27 4
gpt4 key购买 nike

一会儿我需要 switch case。开关中的每个案例都是执行某些操作的菜单的一部分。我还需要处理来自开关的所有输入,所以默认对我来说不是好的选择。当用户在 CMD 中按 CTRL + Z 时,我需要完全离开,程序正在运行以释放内存并退出程序。这段代码只是我的简化版本。请你帮助我好吗?这是我完成任务需要做的最后一件事。谢谢。

while (1) {
scanf("%c", &choose);

switch (choose) {

case 1:
//something
break;
case 2:
// something
break;

// no default!

}
}

最佳答案

如果用户在 Windows 上按下 Ctrl+Z,您的程序会将其视为输入文件的结尾 (stdin)。当 scanf 尝试从 stdin 读取一个字节时,它将失败并返回 -1 (EOF),而通常的返回值为 1(即读取的项目数)。

所以你可以使用下面的代码:

while (scanf("%c", &choose) == 1)
{
switch (choose) {

case 1:
//something
break;
case 2:
// something
break;

// no default!

}
}

我将 scanf 的返回值放入 while 的条件中。当 scanf 无法再从 stdin 读取字节时,循环将终止。

关于c - 在 while(1) 中离开开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55463446/

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