带有OR运算符的C++ if语句无法正常工作

Jac*_*ins 0 c++ if-statement string-comparison

我最近一直在学习C++,我已经开始了一个小项目,所以我放学后不会觉得无聊.

我正在创建一个带有命令参数的程序,如果格式不正确,则会抛出"USAGE"消息.

这是我的代码:

#include <iostream>
using namespace std;

int main(int argc, char *argv[]){
    if ( argc != 3 )
    {
        cout << "USAGE: " << argv[0] << " <-f/-c> <integer value>" << endl;
        return 1;
    }
    else
    {
        if ( argv[1] == "-f" || argv[1] == "-F" )
        {

        }
        else if ( argv[1] == "-c" || argv[1] == "-C" )
        {

        }
        else
        {
            cout << "USAGE: " << argv[0] << " <-f/-c> <integer value>" << endl;
            return 1;
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,无论我输入什么都会抛出"USAGE"消息.

如果有人能告诉我我做错了什么,那太棒了!

i48*_*486 5

将字符串与之比较strcmp,而不是与==:

if ( !strcmp( argv[1], "-c" ) ) ...
Run Code Online (Sandbox Code Playgroud)