Hola como estan todos, soy nuevo aqui en el foro, estuve buscando algun foro de programacion en c++ y me tope con este....vamos a ver que tal me va por aca.
El hecho es que no se nada de excepciones en c++, tengo el libro de Programacion en c++ 2da edicion de joyanes donde hablan del tema pero no entiendo mucho. Bueno lo que estoy buscando por ahora es muy sencillo, practicando listas doblemente enlazadas he creado un programa para manejar una agenda telefonica, con la posibilidad de cargar la agenda desde un archivo a la lista y tambien guardar la agenda a un archivo desde la lista enlazada.
En el programa tengo varios menu donde el usuario selecciona una opcion leo el entero y ejecuto lo que el usuario ingresa, el problema viene cuando el usuario no ingresa un numero sino que ingresa una letra o un simbolo o un valor mayor a la capacidad de un entero, provocando un error, mi menu simplemente dice opcion invalida pero se ejecuta infinitamente por la misma condicion de un while que tengo no se para, por lo menos en java se como tratar estos problemas con excepciones, pero en c++ no tengo ni idea, si alguien puede darme una mano. aqui les dejo codigo del primer menu nada mas.
int menu()
{
int opc=0;
system ("cls");
do
{
cout<<"nn1.Agregar contacton2.Eliminar contacton3.Buscar contacton4.Buscar multiples contactosn5.Listar todon6.Cargar agenda desde archivon7.Guardar agenda a archivon8.Salir"<<endl;
cin>>opc;
if(opc>0&&opc<9)
return opc;
else
cout<<"nOpcion invalida"<<endl;
}while(true);
return 8;
}
cuando lee mal repite el do por la misma condicion del while pero no se para en el menu para leer la opcion sino que sigue sin pararse. Por lo menos en java manejo la excepcion en un bloque try y catch facil, pero c++ trato de hacerlo igual que he leido se puede hacer y no funciona, si ingreso una letra o un simbolo dice opcion invalida pero el menu se ejecuta infinitamente por el true del while. Trato limpiando el buffer de entrada pero tampoco. Bueno espero alguien me eche una mano por aca saludos