É possível enviar matrizes do bash para o programa C ++?

4

Eu queria saber, se é possível criar um array_of_strings e enviá-lo para um programa C ++, que tem uma string de argumento array_of_strings []?

    
por MiNdFrEaK 24.09.2012 / 01:55

2 respostas

3

A resposta de Gilles dá 90% disso, mas o resto é para fazer o certo.

$ arr=(foo bar 'Hello World!')
$ ./foo "${arr[@]}"
    
por 24.09.2012 / 03:06
2

Todos os programas recebem um array de strings como seus argumentos. Em C ++, os argumentos são o parâmetro argv da função main . O primeiro elemento dessa matriz é o nome do programa, os outros são os argumentos que você passa.

$ 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
    
por 24.09.2012 / 02:00

Tags