[C con Clase] vaciar la entrada std
srd4121 en njit.edu
srd4121 en njit.edu
Mie Dic 17 17:28:43 CET 2008
Hola Nuria,
Mensaje citado por: Núria Busom Figueres <meteorit666 en hotmail.com>:
>
>
> Muchas gracia por la explicación, pero me sigue sin funcionar, a ver
> pongo codigo:
>
[CORTE]
> entonces mi problema es que (por ej: declaro Sn[3] y St[2]) si cuando
> introducen Sn (mayúsculas), se equivocan y escriben ABCd, la 4º letra q
> ya no cabe en Sn y ad+ es una minuscula, me la pone en St. Lo que quiero
> es vaciar la entrada para q esto no pase.
>
Bien. Creo que ya tengo la solución. Tienes que desactivar la sincronización
entre los objetos estándares de <iostream> (cin, cout, cerr, y clog) y sus
homólogos de las bibliotecas estándares de ANSI C. Esto se consigue con la
función miembro estática 'ios_base::sync_with_stdio()'. Sugiero hacer esto al
comienzo del programa:
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio( false );
char letras1[3];
letras1[0] = cin.get();
letras1[1] = cin.get();
letras1[2] = cin.get();
cin.ignore( cin.rdbuf()->in_avail(), '\n' );
char letras2[2];
letras2[0] = cin.get();
letras2[1] = cin.get();
return 0;
}
Espero que esto te sirva.
Steven
Más información sobre la lista de distribución Cconclase