我意识到如果输入是一个以'y'或'n'开头的单词,它将会逃离循环。除非输入是单个字符,否则我怎样限制循环才能继续循环?如何限制为单字母输入?
do
{
printf("Do you want to try again? (Y/N): ");
fflush(stdin);
scanf("%c", &repeat);
repeat = toupper(repeat);
if (repeat != 'Y' && repeat != 'N')
printf("Invalid answer. Please enter 'Y' or 'N'.\n\n");
} while (repeat != 'N' && repeat != 'Y');
'fflush(stdin);'是未定义的行为。 – StoryTeller
什么是“重复”? – GMichael
您需要[向您的橡皮鸭解释](https://en.wikipedia.org/wiki/Rubber_duck_debugging)双字符输入与两个单字符输入如何不同。如果输入了EOF,则为UB –