![]() | ![]() |
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