Argumentos del main

Iniciado por mapers, 5 Junio 2012, 19:46 PM

0 Miembros y 1 Visitante están viendo este tema.

mapers

Buenas gente me dejaron un codigo de la facultad en C++ pero tiene como argumentos iniciales :


int main(int argc, char **argv)


y mas abajo tiene
Código (cpp) [Seleccionar]

p = &argv[1][0];


como seria la manera de ingresar los valores de inicio denme un ejemplo porfavor

Ferno

Por consola, ejecutando el programa por su nombre seguido del parámetro que le pasas.

mapers

Y como lo reemplazaria eso dentro del main

Ferno

El argc es el contador de argumentos. Te dice cuántos argumentos se pasaron por parámetro.
Por defecto siempre es uno (ya que el primer parámetro de todos es el nombre del programa).

Luego, argv es el llamado vector de argumentos. En la primer posición, se encuentra el nombre del programa. En la segunda el primer parámetro, en la tercera el segundo parámetro, y así sucesivamente.

mapers

haber dame un ejemplo porfa !!!!!! no la capto :S
en este caso este tiene char **argv como seria para capturar por un cin

Ferno

char** argv y char* argv[] funcionan de la misma manera (supongo que sabes algo de arreglos, bien, entonces sabes que una variable del tipo array apunta a la primer posición del arreglo (es un puntero))

Un ejemplo. Supongamos que tienes este programa:

#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for(i = 0; i < argc; i++) {
printf("Parámetro %d: %s\n", i, argv[i]);
}
return 0;
}


Como te dije, argc contiene la cantidad de parámetors pasados por línea de comandos y argv guarda justamente esos parámetros de tipo string en cada una de sus posiciones.
Lo que hace este programa entonces es contar la cantidad de parámetros pasados por parámetro (incluyendo también el nombre del programa).

Entonces, si vos compilás este programa y vas al cmd si estás en windows (o a la terminan en Linux) puedes ejecutarlo:

miProgramaContadorDeParametros.exe primerParametro segundoParametro

o en Linux

./miProgramaContadorDeParametros primerParametro segundoParametro

La salida por pantalla entonces serán justamente tus parámetros (primerParametro segundoParametro).
Estos son los parámertos que cuentan, los que el usuario les pasa por línea de comandos al ejecutar el programa.

Espero que se haya entendido..y que no haya batido tanta fruta :P