将argv作为存储的字符串传递给函数

时间:2016-11-08 01:51:11

标签: c++ visual-studio command-line command

任何人都可以解释为什么getMessage()函数中的cout没有读出。我的目标是将argv [i]作为先前存储的值传递。

到目前为止,这是我的代码。我是命令行args的新手,任何帮助都会很棒。

#include <iostream>
#include <string> 
using namespace std;

void getMessage(string action);

int main(int argc, char* argv[])
{

    string action = argv[1];    
    cout << action << endl;
}

void getMessage(string action)
{
    cout << "I said " << action << endl;

}

1 个答案:

答案 0 :(得分:1)

它确实起作用,因为你根本没有真正打电话给getMessage()。它应该更像这样:

#include <iostream>
#include <string> 

using namespace std;

void getMessage(const string &action);

int main(int argc, char* argv[])
{
    if (argc > 1)
    {
        string action = argv[1];
        getMessage(action);
    }
    else
        cout << "no action specified" << endl;

    return 0;
}

void getMessage(const string &action)
{
    cout << "I said " << action << endl;
}