gpt4 book ai didi

C 语言 - WHILE 循环的工作量超出了预期

转载 作者:行者123 更新时间:2023-11-30 15:02:59 28 4
gpt4 key购买 nike

我想让用户选择一个选项。所以我声明了一个名为 Choice 的变量,我希望它输入一个只能是 'M'char'C''O''P'

这是我的代码:

char Choice;
printf("Select something to do :\n'M':Model Parametering\n'C':Calendar creation\n'O':Calendar Output\n'P':Calendar Print\nChoice==>>");
Choice = getchar();
while(Choice!='M' && Choice != 'C' && Choice != 'O' && Choice != 'P'){
printf("\nIncorrect choice, Try again\n");
printf("Select something to do :\n'P':Model Parametering\n'C':Calendar creation\n'O':Calendar Output\n'P':Calendar Print\nChoice==>>");
Choice = getchar();}

问题是当我用错误的值测试它时(输入不在 ['M','C','O','P'] 中的字符),while 循环不止一次地工作。例如,如果我输入 "TEST" 而不是 'M''C''O''P'while 可以工作 5 次,而不是像我想要的那样只工作一次!为什么会发生这种情况?

最佳答案

输入TEST(4个字符)后,您还按了Enter。这是传递给程序的第五个字符(实际上是换行符)。同样,在执行单个字符(和 Enter)后,循环运行两次 - 首先针对字符本身,然后针对换行符。

关于C 语言 - WHILE 循环的工作量超出了预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40896766/

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