439 votos

¿Qué significa int argc, char * argv [] significa?

En muchos compiladores y de C++ IDE, cuando se genera la función principal, se ve así:

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

Cuando código C++ sin un IDE, sólo con un compilador de línea de comandos, de tipo:

int main()

sin ningún parámetro. ¿Qué significa esto y es vital para mi programa?

571voto

meagar Puntos 85475

argv y argc son cómo los argumentos de línea de comandos se pasan a main() en C y C++.

argc será el número de cadenas que señala argv. Esto (en la práctica) 1 más el número de argumentos, como prácticamente todas las implementaciones se antepone el nombre del programa de la matriz.

Las variables se denominan argc (argument count) y argv (vector de argumento) de la convención, pero que puede ser dada en cualquier identificador válido: int main(int num_args, char** arg_strings) son igualmente válidos.

También pueden omitirse completamente, produciendo int main(), si usted no tiene la intención de procesar argumentos de línea de comandos.

Tratar el siguiente programa:

#include <iostream>

int main(int argc, char** argv) {
    std::cout << "Have " << argc << " arguments:" << std::endl;
    for (int i = 0; i < argc; ++i) {
        std::cout << argv[i] << std::endl;
    }
}

Se ejecuta con ./test a1 b2 c3 de salida

Have 4 arguments:
./test
a1
b2
c3

48voto

John Boker Puntos 36308

argc es el número de argumentos que pasa en su programa de la línea de comandos y argv es la matriz de argumentos.

Usted puede recorrer los argumentos sabiendo el número de ellos como

for(int i = 0; i < argc; i++)
{
    //argv[i] is the argument at index i
}

8voto

BlueMonkMN Puntos 10838

Los parámetros principales representan los parámetros de línea de comandos proporcionados al programa cuando se inició. El parámetro argc representa el número de argumentos de línea de comandos y char * argv [] es una matriz de cadenas (indicadores de carácter) que representan los argumentos individuales en la línea de comandos.

5voto

Nick Gerakines Puntos 1145

El primer parámetro es el número de argumentos y el segundo parámetro es una lista de cadenas que representan esos argumentos.

3voto

Andy Puntos 1150

Es la forma en que se leen los argumentos de línea de comandos en su programa. Corriendo

$ myprogram argument1 argument2

Te daría un valor de 3 para argc (cuenta el nombre de tu programa como 1) y [argument1, argument2] en el char *.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X