为什么我不能使用变量=+;或变量!=-以C为例
我正在用switch case做一个简单的计算器,但我遇到了一些问题,决定用另一种方法来检查用户输入的内容是否无效,但我无法让它工作 这是程序中的一段代码:为什么我不能使用变量=+;或变量!=-以C为例,c,C,我正在用switch case做一个简单的计算器,但我遇到了一些问题,决定用另一种方法来检查用户输入的内容是否无效,但我无法让它工作 这是程序中的一段代码: if (choice!="+"&&choice!="-"&&choice!="*"&&choice!="/"); { printf("The type of operation is invalid\n"); invalid=1; printf("Chose t
if (choice!="+"&&choice!="-"&&choice!="*"&&choice!="/");
{
printf("The type of operation is invalid\n");
invalid=1;
printf("Chose the type of operation, + for sum, - for subtraction, * for multiplication and / for division\n");
scanf("%c", &choice);
}
我无法验证用户输入的内容是否与+、-、*或/不同
我想得到一些帮助。
提前谢谢你 在您的代码中,我看到以下语句:
scanf(“%c”和&choice)代码>
所以我判断变量'choice'的类型是char
对于字符比较,需要使用单引号,而不是双引号。因此,更换
if(choice!=“+”&&choice!=“-”&&choice!=“*”&&choice!=“/”代码>
与
if(choice!='+'&&choice!='-'&&choice!='*'&&choice!='/')
另外,从if
语句末尾删除分号。这没有意义。使用”
而不是“
对于1个字符,在字符常量周围使用单引号。实际上可能重复,因为OP没有给我们选项的声明
,它可能是。如果选择的是字符
,则您希望针对字符
进行测试,即“+”
。如果选择是一个char*
,您需要使用strcmp
@user2064000进行测试:您的建议假设choice
是一个字符串,而它很可能不是字符串(请参阅调用scanf
)。