• Sábado 27 de Abril de 2024, 14:47

Autor Tema:  Argumentos Del Main  (Leído 2200 veces)

GUILLERMO4112

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Argumentos Del Main
« en: Viernes 7 de Enero de 2005, 13:24 »
0
Hola, estoy acostumbrado a trabajar con main () o int main o main (void), nunca le he prestado atencion a eso ya que los programas funcionan bien porque como estoy en etapa de estudio copio o hago pequeños reemplazos experimentales de codigos fuentes de ejemplos que bajo de la red.

PERO AHORA ME ENTUSIASME CON DEL DEVCPP Y ALLEGRO PROGRAMANDO EN WINDOWS Y ME HE ENCONTRADO CON UN BUEN FUNCIONAMIENTO DE LOS EJEMPLOS PERO NO LOGRO INTERPRETAR PORQUE APARECEN EN LOS MISMOS LOS MAIN( int argc, float argv ) quisiera que me expliquen eso pero no superficialmente, sino por alguien que sepa.

YO ESTOY HABLANDO DE EJEMPLOS DE ALLEGRO PARA DEVCPP pero ocurre en general para todo C porque el main es indiferente en C o C++.

mgitano2001

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Argumentos Del Main
« Respuesta #1 en: Viernes 7 de Enero de 2005, 17:25 »
0
Mira, la verdad nunca vi un:
int main(int argc, float argv)
asi que no se que es. lo que mas comun es:
int main(int argc, char *argv[]) o
int main(int argc, char **argv)

Saludos Mgitano2001
</span></span>

iori2029

  • Miembro activo
  • **
  • Mensajes: 48
    • Ver Perfil
Re: Argumentos Del Main
« Respuesta #2 en: Viernes 7 de Enero de 2005, 18:09 »
0
Pues int argc  viene de Argument count, que es el numero de argumentos que le pasas a un programa por medio de la linea de comandos del dos un ejemplo seria cuando haces dir /p /s los "/p" y "/s" son los argumentos, argc guarda el numero de argumentos que se pasa al programa, contando como argumento 1 el nombre del programa. char *argv es un puntero a un arreglo de caracteres que guarda los argumentos en forma de cadenas, con el ejemplo anterior el primer elemento apuntaria a la cadena "dir" el numero 2 a "/p" el numero 3  a"/s" y asi por el estilo.

Bueno esto es para DOS :devil:  no se si aplique a windows.espero que te sirva.

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Argumentos Del Main
« Respuesta #3 en: Domingo 16 de Enero de 2005, 11:54 »
0
:hola: Como bien dice iori2029 estas vbles son elementos del antiguo MS-DOS estrechamente relacionados con la línea de comandos.  Como iori2029 ya explicó el significado de las vbles yo me limitaré a realizar un ejemplo:
Supongamos que vamos a hacer una función muy simple, suma o resta de dos valores, nos interesa que el usuario pueda darnos los valores sin necesidad de usar funciones de entrada y salida.  La solución sería bien fácil:

Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#60;stdlib.h&#62;
  4. #include &#60;string.h&#62;
  5.  
  6.  
  7. int main(int argc, char *argv[], char *envp[])
  8. {
  9.  
  10.   if(argc&#60;4)
  11.   {
  12.  
  13.     printf(&#34;Este programa recibe tres parámetros:&#092;n&#34;
  14.          &#34;La operación a realizar (suma/resta)&#092;n&#34;
  15.          &#34;El primer operando y el segundo.&#34;);
  16.     return (-1);
  17.   }
  18.   if(strcmp(&#34;suma&#34;,argv[1])==0)
  19.   {  
  20.     printf(&#34;%d&#34;,( atoi(argv[2]) )+( atoi(argv[3]) ) );
  21.     return(0);
  22.   }
  23.  
  24.   else if(strcmp(&#34;resta&#34;,argv[1])==0)
  25.   {
  26.     printf(&#34;%d&#34;,( atoi(argv[2]) )-( atoi(argv[3]) ) );
  27.     return(0);
  28.   }
  29.  
  30.   else
  31.   {
  32.     printf(&#34;&#092;nLos parametros no son correctos&#34;);
  33.     return(-1);
  34.   }
  35.  
  36. }
  37.  
  38.  
para ejecutar el programa , basta ir abrir una ventana de MS-DOS movernos hasta el directorio donde está el programa y ejecutarlo de la sigte manera:
supongamos que el programa se llama prueba y está en c:\:
c:\prueba suma 6 8
14   ----> nos devolvería la suma de ambos
c:\prueba resta 9 3
6    -----> nos devolvería la resta de ambos

Si observas bien argv[] contiene 4 elementos, esto se debe a que argv[0] siempre contiene la ruta al programa, en este caso contendría:
argv[0]="C:\prueba.exe"
por tanto aun cuando no se le pasan argumentos mediante la línea de comandos argc siempre contendrá 1 y argv[0] siempre contendrá la ruta al programa.
Un saludo  :hola:
No hay tonto más molesto que el ingenioso.