Dudas sobre modulos en C++

Ninja-Killer

Tengo que crear una funcion void error(int); Es una función que recibe un código y saca por “stderr” un string asociado (mensaje) de error. Si cualquiera de las funciones anteriores tiene algún argumento incorrecto o el resultado se sale de rango se debe de llamar a esta función error(), dentro de la función en la que ha sucedido esto. Tras la llamada a error() se debe salir de la función en la que sucedió el error de manera limpia.

El proyecto es una calculadora y ya tengo un modulo llamado "matematico.cpp" y otro llamado "interfaz.cpp", y ahora tengo que hacer uno llamado "error.cpp", pero no tengo ni idea de como implementarlo. ¿Alguno me podria decir como saco los mensajes de error? Os lo agradeceria mucho.

Gracias

r2d2rigo

Veamos, te voy a dar un ejemplo:
tienes una funcion

int suma(int sumando1, int sumando 2)
{
if ((sumando1+sumando2)>999)
{
error(1);
}
else
return sumando1+sumando2;
}

Esta funcion suma dos numeros y devuelve el resultado. Pero antes de ello comprueba que el resultado no sea mayor de 9 elevado a 99, y en tal caso, llama a la funcion error con el codigo 1. Entonces, la funcion error tendria que ser asi:

void error(int codigo)
{
switch(codigo)
{
case 0:
printf("Este es el error 0\n");
break;
case 1:
printf("Resultado demasiado grande\n");
break;
case 2:
printf("Error numero 2\n");
break;
}
exit(0);
}

Por lo que analizaria el numero del codigo de error, y a partir de ahi imprimiria un mensaje de rror, para al final terminar la ejectucion del programa con exit(0).

Ninja-Killer

if ((sumando1+sumando2)>999)
{
error(1);
}
else
return sumando1+sumando2;
}

Supongo que en lugar de 99 deberia de poner el limite de rango, dependiendo del tipo de la variable (int, float....), que se mira en limits.h
Muchas gracias tio, 1/2 nota te corresponde a ti xDD

Usuarios habituales

  • Ninja-Killer
  • r2d2rigo