我做了一个switch语句,但它只适用于已设置的常量。如果我尝试将其与用户输入一起使用,则只有一个案例有效,而另一个案例则不然。现在无论我输入什么,它总是使用默认情况。我尝试添加另一个getchar()来清除缓冲区中的\n
字符,但这没有什么区别。我在这里发布整个switch语句:
char option=' ';
option=getchar();
switch(option){
//Parallel resistance calculations
case 'p':
CLEAR
//PResistance();
printf("RESISTANCE");
getchar();
break;
//Ohm's Law calculations
case 'o':
CLEAR
printf("OHM");
//Ohm();
break;
//Exits program
case 'q':
printf("Good bye! Stay safe in the laboratory! :)\nPress any key to exit");
getchar();
exit(0);
break;
//Error checking
default :
printf("Invalid input, Try again");
break;
}
}
while (option!='q');
我注释掉了函数,因此我可以使用print语句来测试它是否正常工作。
答案 0 :(得分:1)
每当您在C中从character
输入string
或stdin
时,请务必确保输入缓冲区中没有\n
。要执行此操作,请在执行getchar()
或integer
输入后始终float
。
在您的情况下,也许您在输入integer
之前输入了character
。因此,在尝试getchar()
输入之前,请尝试编写character
。