Pequeño problema, seguramente con el buffer
Publicado por Misael (3 intervenciones) el 21/01/2020 12:44:09
Buenas, tengo un pequeño problema con esta parte el código de mi programa...
Lo que pasa ese que cuando digito por ejemplo una "a" y se almacena en "opcion" como que el buffer se llena y saltea el "cin>>opcion;". Intente usando fflush(stdin) y cin.ignore() pero no resulto, tambien intenté cambiando el valor de opcion, en la funcion verificar_opcion (usando la posicion de memoria). Si alguien puede ayudarme estaría genial. Ya me paso antes esto y justamente en este mismo programa pero lo deje porque aun no sabia usar funciones y se me hacia muy desordenado todo, crei que lo podria solucionar pero aun no puedo. Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int menu_principal() //Menu Principal
{
int opcion;
do
{
cout<<"1. English ---> Spanish"<<endl;
cout<<"2. Spanish ---> English"<<endl;
cout<<"3. Exit"<<endl<<endl;
cout<<"Option: "; cin>>opcion;
verificar_opcion(opcion);
}while(flag=1);
return opcion;
}
template <class TIPOD>
int verificar_opcion(TIPOD& option)
{
if(option!=1 && option!=2 && option!=3)
{
system("cls"); option=0;
cout<<"\aError. Digite una opcion correspondiente. "<<endl<<endl; system("pause");
system("cls");fflush(stdin);
}
else
{
flag=0;
}
}
Valora esta pregunta


0