gracias de nuevo por contestar.
este es el código:
Código:
#include "persona.hh"
#include "lista.hh"
bool errorComando(void);
bool errorSintaxis(void);
bool errorFichero(void);
bool tratamientoErrores(void);
int main(int argc, char **argv)
{
if(tratamientoErrores()==false)
{
//código
}
return 0;
}
bool errorComando(void)
{
bool error=false;
if(argc>=1)
{
if (argv[1]!="-nuevaPersona" || argv[1]!="-defuncion" || argv[1]!="-invertir" || argv[1]!="-baja")
error=true;
}
else
error=true;
return error ;
}
bool errorSintaxis(void)
{
bool error=false;
int longitud, i;
if(argv[1]=="-nuevaPersona")
{
if(argc==5 || argc==7)
{
int NPargv5=atoi(argv[5]);
longitud=strlen(argv[3]);
if(argv[2]!="-n" || longitud>50)
error=true;
if(argv[4]!="-a" || NPargv5>9999 || NPargv5<1)
error=true;
if(argc==7)
{
longitud=strlen(argv[7]);
if(longitud>9)//hai que comprobar se son todo numeros
error=true;
else
{
longitud=strlen(argv[7]);
for(i=0; i<longitud; i++)
{
if(isdigit(argv[7][i])==0)
error=true;
}
}
}
}
else
error=true;
}
if(argv[1]=="-defuncion")
{
if(argc==5)
{
int Dargv3=atoi(argv[3]);
int Dargv5=atoi(argv[5]);
if(argv[2]!="-i" || Dargv3>9999 || Dargv3<1)
error=true;
if(argv[4]!="-a" || Dargv5>9999 || Dargv5<1)
error=true;
}
else
error=true;
}
if(argv[1]=="-invertir")
{
if(argc!=1)
error=true;
}
if(argv[1]=="-baja")
{
if(argc==5)
{
int Bargv5=atoi(argv[5]);
longitud=strlen(argv[3]);
if(argv[2]!="-n" || longitud>50)
error=true;
if(argv[4]!="-a" || Bargv5<1 || Bargv5>9999)
error=true;
}
else
if(argc==3)
{
int Bargv3=atoi(argv[3]);
if(argv[2]!="-i" || Bargv3<1 || Bargv3>9999)
error=true;
}
else
error=true;
}
return error;
}
bool errorFichero(void)
{
bool error=false;
ifstream fichero;
fichero.open("datos.txt");
if(fichero.fail())
error=true;
fichero.close();
return error;
}
bool tratamientoErrores(void)
{
bool error;
error=errorComando();
if(error==false)
error=errorSintaxis();
if(error==false)
error=errorFichero();
return error;
}
solo pongo el main.cc que es donde se encuentra el programa principal.
espero una respuesta. gracias!
PD: como etiquetas el código C?