C/Visual C - ayuda con validacion de un programa

 
Vista:

ayuda con validacion de un programa

Publicado por Andres (3 intervenciones) el 12/02/2008 04:08:43
hola, tengo que hacer un programa que pruebe que tan buenas son las funciones aleatrias de C para, esto el ususrio tiene que escribir desde la linea de comandos todo lo que se debe de introducir es decir: Aleatroio(nombre de programa) -opcion semillas veces maximo.

ahurita estoy trtabado en las validaciones porke son muchos ifs, queria ver si es posible simplificar esto de alguna manera

otra csoa las opciones pueden ser -o, -d, -D y -h y -o puede llevar un nombre de la salida y puede ir en combinacion kon las otras funciones. aka les dejo lo ke tengo de codigo

#include <stdio.h>
#include<string.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
char *re;
int semilla, valor, maximo;
if(argc==4||argc==5) //se checa para ver si hay 4 o 5 argumentos en el programa.
{

if(strncmp(argv[1],"-o",2)==0)//checamos si el argumento 2 es -o
{
if(strcmp(argv[1],"-oD")==0)
{
printf("Sirve1 ");
}
else if (strcmp(argv[1],"-od")==0)
{
printf("Sirve2 ");
}
else if (strcmp(argv[1],"-oh")==0)
{
printf("Sirve3 ");
}
else
{
if(re=strstr(argv[1],".dat"))//checamos que en el argumento 2 este bien escrito
{
printf("%s",re);
if(strlen(re)==4)//checamos si re (cadena donde se guardo lo que va despues de .dat), tiene longitud de 4
{
printf("o.o");
}
else if(strlen(re)==5)//checamos si re (cadena donde se guardo lo que va despues de .dat), tiene longitud de 5
{
if(strcmp(re,".datd")==0)
{
//Funcion d
}
else if(strcmp(re,".datD")==0)
{
//Funcion D
}
else if(strcmp(re,".dath")==0)
{
//Funcion h

}
else
{
printf("Error Funcion no Valida Modo de escritura: aleatorio -o[nombre.dat](d,D,H[no obligatorio]) semilla valor maximo");
}
}
}
}
}
}
}

muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con validacion de un programa

Publicado por Leo (17 intervenciones) el 13/02/2008 01:30:44
Hola,
Mira en principio te puedo decir que existe una manera automática de extraer las opciones de la línea de comandos. Puede resultar algo costoso aprenderla, pero una vez que le agarras la mano, es muy fácil.
La funcion te permite darle una lista de opciones válidas, equivalentes y sensibles o no a mayúsculas
Hay muchos manuales en internet.

#include <unistd.h>
int getopt(int argc, char * const argv[],
const char *optstring);

Si estas en linux usa "man 3 getopt"
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar