Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 5 Junio 2012, 19:46 pm



Título: Argumentos del main
Publicado por: mapers en 5 Junio 2012, 19:46 pm
Buenas gente me dejaron un codigo de la facultad en C++ pero tiene como argumentos iniciales :

Código
  1. int main(int argc, char **argv)
  2.  

y mas abajo tiene
Código
  1. p = &argv[1][0];
  2.  

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


Título: Re: Argumentos del main
Publicado por: Ferno en 5 Junio 2012, 19:48 pm
Por consola, ejecutando el programa por su nombre seguido del parámetro que le pasas.


Título: Re: Argumentos del main
Publicado por: mapers en 5 Junio 2012, 20:25 pm
Y como lo reemplazaria eso dentro del main


Título: Re: Argumentos del main
Publicado por: Ferno en 5 Junio 2012, 20:29 pm
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.


Título: Re: Argumentos del main
Publicado por: mapers en 5 Junio 2012, 20:33 pm
haber dame un ejemplo porfa !!!!!! no la capto :S
en este caso este tiene char **argv como seria para capturar por un cin


Título: Re: Argumentos del main
Publicado por: Ferno en 5 Junio 2012, 22:01 pm
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:

Código
  1. #include <stdio.h>
  2. int main(int argc, char *argv[])
  3. {
  4. int i;
  5. for(i = 0; i < argc; i++) {
  6. printf("Parámetro %d: %s\n", i, argv[i]);
  7. }
  8. return 0;
  9. }

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