Ya sabemos cómo pasar argumentos a una función. La función main también acepta argumentos. Sin embargo sólo se le pueden pasar dos argumentos. Veamos cuáles son y cómo se declaran:
int main( int argc, char *argv[] )
El primer argumento es argc (argument count). Es de tipo int e indica el número de argumentos que se le han pasado al programa.
El segundo es argv (argument values). Es un array de strings (o puntero a puntero a char). En el se almacenan los parámetros. Normalmente (como siempre depende del compilador) el primer elemento (argv[0]) es el nombre del programa con su ruta. El segundo (argv[1]) es el primer parámetro, el tercero (argv[2]) el segundo parámetro y así hasta el final.
A los argumentos de main se les suele llamar siempre así, no es necesario pero es costumbre.
Veamos un ejemplo para mostrar todos los parámetros de un programa:
#include<stdio.h> int main(int argc,char *argv[]) { int i; for( i=0 ; i<argc ; i++ ) printf( "Argumento %i: %s\n", i, argv[i] ); }
Si por ejemplo llamamos al programa argumentos.c y lo compilamos (argumentos.exe) podríamos teclear (lo que está en negrita es lo que tecleamos):
c:\programas> argumentos hola amigos
Tendríamos como salida:
Argumento 0: c:\programas\argumentos.exe Argumento 1: hola Argumento 2: amigos
Pero si en vez de eso tecleamos:
c:\programas> argumentos "hola amigos"
Lo que tendremos será:
Argumento 0: c:\programas\argumentos.exe Argumento 1: hola amigos
Enviado por Angel:
#include <stdio.h> int main(int argc,char *argv[]) { int par1, par2; par1= *argv[1] - '0'; par2= *argv[2] - '0'; printf("%d + %d = %d\n",par1,par2,par1+par2); }
Este programa espera dos argumentos. Ambos deben ser números del 0 al 9. El programa los coge y los suma.
Ejercicio :
Solución:
© Gorka Urrutia