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