Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: peternash en 11 Agosto 2013, 09:26 am



Título: Duda con parámetros argc y argv
Publicado por: peternash en 11 Agosto 2013, 09:26 am
Hola. Estaba haciendo un pequeño proyecto para ejecutar en la línea de comandos, pero al depurar me aparece un error.

El código es este:
Código:
#include <iostream>
#include <string.h>

using namespace std;
double sum (double a, double b)
{
return a + b;
}
int main (int argc, char *argv[])
{
int i;
if (_stricmp (argv[2], "sum") == 0 ) {
double a, b, result;
a= atoi (argv[3]); // ¿no sería mejor atof?
b= atoi (argv[4]);
result = sum (a, b);
cout << "RESULTADO: " << result;
}
return 0;
}
Es una especie de calculadora para línea de comandos, y quiero que el usuario pueda ejecutar la calculadora invocando directamente el programa con la operación a realizar y los operandos. También tengo planeado hacerle una consola interactiva, pero eso después.

El programa se ejecutaría así

$ PROGRAMA operación OP_1 OP_2
$ programa suma 32 12

Desde ya agradezco las sugerencias y críticas, pero no acepto la clásica "lavada de manos" de "busca en google que para eso está".


Título: Re: Duda con parámetros argc y argv
Publicado por: Stakewinner00 en 11 Agosto 2013, 10:20 am
Código
  1. #include <iostream>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6. double sum (double a, double b)
  7. {
  8. return a + b;
  9. }
  10. int main (int argc, char *argv[])
  11. {
  12. if (strcmp(argv[1], "sum") == 0 ) {
  13. double a, b, result;
  14. a= atoi(argv[2]); // ¿no sería mejor atof?
  15. b= atoi(argv[3]);
  16. result = sum (a, b);
  17. cout << "RESULTADO: " << result;
  18. }
  19. return 0;
  20. }

Te faltaba algun include y al parecer también te confundiste en lo de argv[], hiciste como si argv[0] no existiera.


Título: Re: Duda con parámetros argc y argv
Publicado por: MeCraniDOS en 11 Agosto 2013, 12:54 pm
Ya que se abre un tema así, alguien me puede explicar para que sirven los dos valores en la función main?

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

Saludos  :silbar:


Título: Re: Duda con parámetros argc y argv
Publicado por: Eternal Idol en 11 Agosto 2013, 14:25 pm
argc = argument count y argv = argument vector.

De 0 a argc - 1 podes acceder a los parametros en argv, normalmente el primero es el mismo programa.