int main(){
int firstNumber, secondNumber, thirdNumber;
char oper;
scanf("%d", &firstNumber);
printf("%d\n", firstNumber);
scanf("%c", &oper);
printf("%c\n", oper);
scanf("%d", &secondNumber);
printf("%d\n", secondNumber);
return 0;
}
为什么此代码无法正常工作,它读取了第一个和第二个数字,但是操作符却有些奇怪。
答案 0 :(得分:0)
很难使用scanf()
。在这里,您在第一个数字之后按Enter键后,stdin
上还有一个换行符。所以,这就是你读的字符。某些格式转换会忽略空格,但%c
不会。
要使其忽略前导空格,应改为使用
scanf(" %c", &oper);
格式字符串中的空格告诉scanf()
忽略它找到的任何空格,因此您将读取一个非空格字符。