繁体   English   中英

带有or表达式的If语句中的语法错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM