我目前正在自学 C 和 C++。在这个小小的“程序练习”中,我要求用户输入“i”或“d”以了解他们是要使用整数还是小数(浮点数)。我有一个while循环,通过告诉他们是否输入了错误的字符来确保用户输入'i'或'd'。出于某种原因,while 循环中的提示在进入 getchar() 之前会打印两次。在这种情况下,我很难理解幕后发生的事情。任何帮助都非常感谢。我正在使用 Xcode(不知道它是否相关)。
#include <stdio.h>
int main()
{
char action;
printf("Please enter 'i' to work with integers or 'd' to work with decimals.\n\n");
scanf("%c", &action);
while (action != 'i' || action != 'd')
{
printf("You didn't entered the right command. Please try again (i/d)\n");
action = getchar()
}
}
所以我得到的输出是这样的:
You didn't entered the right command. Please try again (i/d)
You didn't entered the right command. Please try again (i/d)