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

Jadder Antonio Moya Urbáez jadder.antonio en gmail.com
Mar Jun 14 05:20:53 CEST 2011


Gracias por esos puntos lo tengo que tratar..

Como dice* Pablo Alejandro* vemos que int argc es un contador de argumento
y char *argv son los argumentos
Interesante material del mini tutorial* Luis Pedro* me ha funcionando
escribiendo suma 4 6,
ya veo que el main lo reconoce como string y que debo hacer conversiones
para las funciones.
vale mencionar que la idea original es yo crear un programa que haga pruebas
o validaciones a otro programa.

ejemplo: Programa tester 1...validar programa suma con (2 4 ) (5 a) (a 5) (a
b)
resultados programa tester
suma de 2 numeros correcta

salida
1 4 correcto
a 3 fallo
4 b fallo
a b fallo

   - validar argumento 1 acepto carateres
   - validar argumento 2 acepto caracteres
   - validar ambos argumentso acepto caracteres


2011/6/13 Benjamín Almarza <benjamin.almarza en alumnos.usm.cl>

>  =p o sea yo estaba contestando la duda de otra persona, de todas maneras
> gracias Luis
>
>
>
> On 06/09/2011 10:22 AM, Luis Pedro Méndez wrote:
>
> 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
>>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.nethttp://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
>
> _______________________________________________
> 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
>



-- 
*webmaster Jadder
***
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110613/d11a6ac0/attachment.html>


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