[英]Syntax error in If-statement with or-expression
在我的C ++计算器代码中,以下子句中出现涉及argc
变量的语法错误:
if (argc==4 || argv[3]="s"){
result=no1 - no2;
cout<<result<<endl;
return 0;
}
而以下具有相同结构的代码可以编译,
if ( a || b ){
cout << "Line 2 - Condition is true"<< endl ;
}
我尝试将if-expression分解为两个单独的语句:
if (argc==4)
{
if(argv[3]="s")
{
result=no1 - no2;
cout<<result<<endl;
return 0;
}
}
但是,如果执行了Calculator.exe 10 2 d命令,则结果为8,这是不正确的。
我将不胜感激任何帮助。
一个简单的错字: if (argc==4 || argv[3]="s")
,第二个是赋值,并且始终为true。 将其更改为测试相等性:
if (argc==4 || strcmp(argv[3], "s") == 0) //strcmp for c strings
^^^
“ argc”的类型为int。 但是argv是指针数组,它指向传递给程序的每个参数并将其存储为字符串。 并且您不能将字符串与==进行比较。 因此,请改用strcmp。
(strcpm(argv[3],"s")==0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.