[C con Clase] Pasar argumentos al main desde otro programa

Luis Pedro Méndez elinv.elinv en gmail.com
Jue Jun 9 16:22:22 CEST 2011


Hola benjamin, mira esta tutoría a ver si te es de utilidad a los fines de
tu proyecto.

--------------------------------

/*
-->     Minitutoría sobre paso de argumentos al Main, llamando a distintas
funciones
-->     Realizado por Luis Pedro Méndez y Elinv.
-->     ------------------------------------------
-->     Realizado en DEV C++ 4.9.9.2
-->     Crea un proyecto en el raiz del disco C: al que llamaras
calculadora.cpp
-->     copia este código
-->     Compilalo pero no lo ejecutes desde windows pues te enviara un
error.
-->     En inicio-->ejecutar-->tipeas "cmd" y enter...
-->     con "cd.." vas hasta el c:/
-->     allí tendras un ejecutable que se llamará "calculadora.exe"
-->     tipeas lo siguiente: "calculadora suma 12 24"
-->     donde: calculadora es el ejecutable
-->     suma es la función a la que se llama
-->     12 es el primer operando de la suma
-->     24 es el segundo operando de la suma
-->     puedes utilizar tambien las funciones resta, multiplicacion y
division.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
//distintas funciones
int suma(int a, int b)
{
return a + b;
}

int resta(int a, int b)
{
return a - b;
}

int multiplicacion(int a, int b)
{
return a * b;
}

int division(int a, int b)
{
return a / b;
}
//Función principal.
int main(int argc, char* argv[]) {
  int i;
  //Se informa al operador los argumentos pasados.
  printf("Se han pasado %3d argumentos:\n", argc);
  //Se recorren los argumentos y se informan mas detalladamente.
  for(i=0; i<argc; i++) printf("%5d- %s\n", i, argv[i]);
  //condicionales para el primer argumento recibido que deriva a la función
  // específica.
  if (strcmp (argv[1],"suma") == 0)
  {
     cout << endl << "La suma es:\t" << suma(atoi(argv[2]),atoi(argv[3]))<<
endl;
  }
  if (strcmp (argv[1],"resta") == 0)
  {
     cout << endl << "La resta es:\t" <<
resta(atoi(argv[2]),atoi(argv[3]))<< endl;
  }
  if (strcmp (argv[1],"multiplicacion") == 0)
  {
     cout << endl << "La multiplicacion es:\t"<<
multiplicacion(atoi(argv[2]),atoi(argv[3]))<< endl;
  }
  if (strcmp (argv[1],"division") == 0)
  {
     cout << endl << "La division es:\t"<<
division(atoi(argv[2]),atoi(argv[3]))<< endl;
  }
  system("pause");
  return 0;
}
--------------------------------

Un abrazo.

Elinv.


El 9 de junio de 2011 00:23, Benjamín Almarza <
benjamin.almarza en alumnos.usm.cl> escribió:

>  Lo que tu quieres hacer eso:
>
> ./programa 12 mas 12
>
>  Y te devuelva 24.
>
> Ahora fíjate en como es el main, recibe una cantidad de "string"
>
> int main(int argc, char* argv[])
>
>
> Los string que le estás mandando en este ejemplo son "12", "+" y "12",
> debes hacer una función que sea capaz de convertir "12" en 12 y "mas" en +
>
> Entonces va a ser:
>
> argv[1] <- primer número
> argv[2] <- operador
> argv[3] <- segundo número
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110609/c0610a45/attachment.html>


Más información sobre la lista de distribución Cconclase