none
Нужна помощь по параметрам командной строки в C++ RRS feed

  • Вопрос

  • Здравствуйте. Пытаюсь разобраться в параметрах командной строки, но не получается.

    Даже если аргументы введены, то выводится No arguments.

    Вот код:

    #include <iostream>
    using namespace std;

    int main(int argc, char* argv[])
    {
        if (argv[1] == "arg1")
            cout << "Argument 1" << endl;
        else if (argv[1] == "arg2")
            cout << "Argument " << endl;
        else if (argv[1] == "arg3")
            cout << "Argument 3" << endl;
        else {
            cout << "No arguments" << endl;
        }
        return 0;

    }

    17 апреля 2015 г. 14:04

Ответы

  • Здравствуйте. Массивы нельзя сравнивать операцией ==. Использульте функции для работы со строками (типа strcmp) или, по крайней мере "оберните" массив в объект класса string:

    #include <string>
    
    // ...
    
    if (string(argv[1]) == "arg1")
    {
        // ...
    }


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа Inert32 17 апреля 2015 г. 15:14
    17 апреля 2015 г. 14:34