【发布时间】:2024-04-28 06:00:02
【问题描述】:
我正在做一个项目,你回答一个字符,如果它不是 4 个答案之一,它会告诉你再试一次。如果它不是 4 个中的正确之一,它将停止运行。这是一个片段。
#include <stdio.h>
#include <stdbool.h>
bool switchCheck = true;
char answer;
printf("A. English\nB. French\nC. Spanish\nD. German\n");
do{
scanf("%c\n", &answer);
switch (answer){
case 'C':
printf("Very nice ");
break;
case 'B':
case 'A':
case 'D':
printf("Sorry! Incorrect. Code Ends\n");
switchCheck =false;
break;
default:
printf("Try Again\n");
}
}while(switchCheck==true);
由于某种原因,当我输入 A、B 或 D 时,它首先打印默认结果,如果我之后立即再次打印,它会给我正确的输入。有什么帮助吗?
谢谢!
【问题讨论】:
-
我们可以看看围绕它的其他代码吗? (一个“最小的可重现示例”。)
-
这几乎可以肯定是由于您阅读输入的方式。你没有显示。请提供完整的minimal reproducible example。
-
case '\n': continue;
标签: c char switch-statement scanf whitespace