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

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

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

Cuando codifico C++ sin un IDE, sólo con un compilador de línea de comandos, escribo:

int main()

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

Solución

argv y argc son la forma en que se pasan los argumentos de la línea de comandos a main() en C y C++.

argc será el número de cadenas apuntadas por argv. Esto será (en la práctica) 1 más el número de argumentos, ya que prácticamente todas las implementaciones antepondrán el nombre del programa a la matriz.

Las variables se denominan argc (contador de argumentos) y argv (vector de argumentos) por convención, pero se les puede dar cualquier identificador válido: int main(int num_args, char** arg_strings) es igualmente válido.

También pueden omitirse por completo, dando lugar a int main(), si no se pretende procesar los argumentos de la línea de órdenes.

Pruebe el siguiente programa:


#include 

int main(int argc, char** argv) {
    std::cout 
Comentarios (11)

argc es el número de argumentos que se pasan a su programa desde la línea de comandos y argv es la matriz de argumentos.

Puedes hacer un bucle a través de los argumentos sabiendo el número de ellos como:

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

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

Comentarios (2)