我真的不知道这是什么错误。这似乎是对的,不是吗?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char op;
printf("Type in operator (+,-,/,*):");
scanf("%i",&op);
if(op == '+')
{
printf("You entered a plus");
}
system("pause");
return 0;
}
我希望它在输入+时打印“你输入了一个加号”。 它没有。
我对C.有点新手 提前致谢:)
答案 0 :(得分:4)
if
条件没问题。问题是scanf()
格式,应为
scanf("%c",&op);
(%i
读取整数,而%c
读取char
。)
答案 1 :(得分:0)
scanf("%i", &op);
你期待一个整数。因此,当您编写一个字符并按<Enter>
时,scanf
会失败(您可以检查其返回值以查看它):
if (scanf("%i", &op) != 1)
{
/* Treat the error. */
}
在%c
中使用相当scanf
格式来阅读字符:
scanf("%c", &op);
答案 2 :(得分:0)
您的问题是格式说明符错误
//In scanf instead of
scanf("%i",&op);
// you have to provide
scanf("%c",&op);
%i use for reading integer whereas %c use for reading char.