Duda con parámetros argc y argv

Iniciado por peternash, 11 Agosto 2013, 09:26 AM

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

peternash

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:

#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á".

Stakewinner00

Código (cpp) [Seleccionar]
#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;
double sum (double a, double b)
{
return a + b;
}
int main (int argc, char *argv[])
{
if (strcmp(argv[1], "sum") == 0 ) {
double a, b, result;
a= atoi(argv[2]); // ¿no sería mejor atof?
b= atoi(argv[3]);
result = sum (a, b);
cout << "RESULTADO: " << result;
}
return 0;
}


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

MeCraniDOS

Ya que se abre un tema así, alguien me puede explicar para que sirven los dos valores en la función main?

Código (cpp) [Seleccionar]
int main (int argc, char *argv[])

Saludos  :silbar:
"La física es el sistema operativo del Universo"
     -- Steven R Garman

Eternal Idol

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.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón