在我的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,这是不正确的。
我将不胜感激。
答案 0 :(得分:3)
一个简单的拼写错误:if (argc==4 || argv[3]="s")
,第二个是赋值,并且永远是真的。将其更改为测试平等:
if (argc==4 || strcmp(argv[3], "s") == 0) //strcmp for c strings
^^^
答案 1 :(得分:1)
“argc”的类型为int。但是argv是指针数组,它指向传递给程序的每个参数,并将它们存储为字符串。 并且你无法将字符串与==进行比较。所以请改用strcmp。
(strcpm(argv[3],"s")==0);