首页 > 解决方案 > 如何从 cpp 文件传递​​命令行参数并在 shell 脚本中使用它?

问题描述

所以,我必须创建一个使用我的脚本来搜索某人姓名的 cpp 文件。我对此很陌生,所以我不太了解,但这就是我目前所拥有的。我也必须使用系统()。这是我的代码

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

int main (int argc, char *argv[]) {
    system("./findName.sh" + argv[1] );
    return 0;
}

标签: c++command-line-arguments

解决方案


问题是在 C++ 中,字符串文字(例如"./findName.sh")不是std::string,而是指针。对于指针,加法除了字符串连接之外还有另一个含义。

您可以创建一个std::string并使用它来执行连接:

    std::string scriptName = "./findName.sh";
    std::string command = scriptName + " " + argv[1];

    system(command.c_str());

不要忘记检查大小argc以确保存在参数。


推荐阅读