Mi problema es el típico, se quedan carácteres en el buffer y no consigo eliminarlos para la siguiente lectura.
Yo lo que quiero hacer es leer la entrada en un char* de 20, para ello lo hago con getLine():
Código C++:
Ver original
cout << "Mete una frase: "; cin.getline(leer,20);
La idea es que si no caben, detectarlo con cin.fail, limpiar el buffer y que me lo vuelva a pedir, para ello:
Código C++:
Ver original
cout << "Mete una frase: "; cin.getline(leer,20); while (cin.fail()){ cin.ignore(100,'\n'); cin.clear(); cout << "La frase no cabe, vuelve a meterla"; cin.getline(leer,20); }
El caso es que no funciona de ninguna manera, ni con lo que pude encontrar por ahí.
También me valdría otro comportamiento, y es que simplemente se quede con lo que quepa y el resto se descarte para que la siguiente lectura sea limpia.
Gracias a todos
![Aplauso](http://static.forosdelweb.com/fdwtheme/images/smilies/aplausos.gif)