elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con parámetros argc y argv
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con parámetros argc y argv  (Leído 2,223 veces)
peternash

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Duda con parámetros argc y argv
« 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á".


En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Duda con parámetros argc y argv
« Respuesta #1 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.


En línea

MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: Duda con parámetros argc y argv
« Respuesta #2 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:
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda con parámetros argc y argv
« Respuesta #3 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.
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDA C] Dividir cadena en subcadenas (similar argv)
Programación C/C++
setwarn 2 7,504 Último mensaje 6 Diciembre 2010, 18:01 pm
por setwarn
problemas con argc
Programación C/C++
Oscar34 1 1,471 Último mensaje 17 Octubre 2012, 18:09 pm
por Oscar34
Problema con parámetros que recibe main(int argc, char *argv[])
Programación C/C++
antkk 1 2,206 Último mensaje 6 Junio 2015, 14:08 pm
por ivancea96
int main (int argc, char* argv[])
Programación C/C++
Locura_23 3 2,767 Último mensaje 23 Mayo 2021, 22:50 pm
por Locura_23
La derivada de la función int main(argc, char* argv[]) es igual a cero.
Programación C/C++
massif.exe 7 3,544 Último mensaje 12 Julio 2021, 11:48 am
por fzp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines