是否可以将数组从 bash 发送到 C++ 程序?

是否可以将数组从 bash 发送到 C++ 程序?

我想知道是否可以创建 array_of_strings 并将其发送到具有参数字符串 array_of_strings[] 的 C++ 程序?

答案1

吉尔斯的回答为你提供了 90% 的信息,但剩下的就靠 bash 来完成了。

$ arr=(foo bar 'Hello World!')
$ ./foo "${arr[@]}"

答案2

所有程序都接收字符串数组作为其参数。在C++中,参数是函数argv的参数main。该数组的第一个元素是程序的名称,其他元素是您传递的参数。

$ cat foo.cpp
#include <iostream>
int main (int argc, char *argv[]) {
    for (int i = 1; i < argc; i++)
        std::cout << argv[i] << std::endl;
    return 0;
}
$ g++ -o foo foo.cpp
$ ./foo hello world
hello
world

相关内容