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 )
我一直在努力做到这一点,如果工作我已经尝试以各种可能的方式放置 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 )