If 语句不适用于 C 中的 char

If statement is not working with char in C

我一直在努力做到这一点,如果工作我已经尝试以各种可能的方式放置 scanf 但这不是问题,因为它会拾取它,就像我在 printf 上看到的那样存储了“+”以下。 谁能弄清楚为什么不呢? 谢谢

float number1;
float number2;
float total;
char operator[1];
printf("Welcome to the calculator\n");
while(3>2)
{
    printf("Pick a number\n");
    scanf("%f", &number1);
    
    printf("Que quieres hacer?\n");
    scanf(" %c", &operator);
    printf("You wrote %s\n", operator);
    
    if(operator =='+')
    {
        printf("This works!");
    }
}

这段代码

    scanf(" %c", &operator);
    printf("You wrote %s\n", operator);
    
    if(operator =='+')
    {
        printf("This works!");
    }

不正确,与变量 operator 的声明方式无关。

如果变量operator声明为

char operator;

然后这个语句

printf("You wrote %s\n", operator);

调用未定义的行为。

在这种情况下你需要写

printf("You wrote %c\n", operator);

如果变量operator声明为字符数组,例如

char operator[N];

其中 N 是某个值,那么至少这个语句

if(operator =='+')

没有意义,条件将始终计算为 false。

注意while循环中的那个而不是这个条件

while(3>2)

只写

会更简单易读
while ( 1 )