簡體   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