无法读取c程序中的字符

cannot read character in c program

我正在尝试制作一个计算器,它首先从用户那里获取两个数字,然后要求完成操作,然后进行处理并产生所需的输出 为什么这个程序跳过第 11 个块 scanf("%c" , &condition);我正在使用 GCC 编译器。

#include<stdio.h>
void main()
{
char condition;
double number_1 , number_2 , result;
printf("please enter first number : \n");
scanf("%lf" , &number_1);
printf("\n please enter secound number : \n");
scanf("%lf" , &number_2);
printf("\n please enter  +  , - , * , / \n ");
scanf("%c" , &condition);

switch (condition)
{
case '+':
    result = number_2 + number_1;
    break;
case '-':
    result = number_1 - number_2;
    break;
case '*':
    result = number_1 * number_2;
    break;
case '/':
    result = number_1 / number_2;
    break;
default:
    break;
}
printf(" \nyour result is %.1lf \n" , result);}

Space、制表符、换行符(换行符)、回车符return、换页符和垂直制表符称为“白-space字符”。所有 scanf() 输入格式说明符忽略白色-space 字符,除了这些:"%c""%n""%[]".

由于您正在使用 %c 格式说明符,scanf() 将额外的 \n 读入字符变量 c.

解决方案:使用前导space。 scanf(" %c" , &condition);