Vaciar buffer de teclado...
Publicado por Daniel (11 intervenciones) el 03/01/2008 19:12:02
Hola a todos
Tengo el siguiente programa que me valida correctamente si en
"apellido" ingreso mas de 15 caracteres, pero si lo hago en cualquiera
de las 2 entradas anteriores, me da por finalizado el mismo.-
Ley po allí que es porque el buffer de teclado no ha sido volcado totalmente
y probé con "cout.flush();" pero continua de la misma manera, me podrías
decir como puedo solucionarlo....?
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
char primer[16],segundo[16],apellido[16];
cout << "Ingrese primer nombre(maximo 15 caracteres).:";
cin.getline(primer,16);
cout << "Ingrese segundo nombre(maximo 15 caracteres):";
cin.getline(segundo,16);
cout << "Ingrse apellido(maximo 15 caracteres).......:";
cin.getline(apellido,16);
strcat(primer," ");
strcat(segundo," ");
strcat(primer,segundo);
strcat(primer,apellido);
cout << "Nombre completo....: " << primer << endl << endl;
system("pause");
return 0;
}
Desde ya muchas gracias por la ayuda que puedas brindarme
un gran abrazo
Daniel
Tengo el siguiente programa que me valida correctamente si en
"apellido" ingreso mas de 15 caracteres, pero si lo hago en cualquiera
de las 2 entradas anteriores, me da por finalizado el mismo.-
Ley po allí que es porque el buffer de teclado no ha sido volcado totalmente
y probé con "cout.flush();" pero continua de la misma manera, me podrías
decir como puedo solucionarlo....?
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
char primer[16],segundo[16],apellido[16];
cout << "Ingrese primer nombre(maximo 15 caracteres).:";
cin.getline(primer,16);
cout << "Ingrese segundo nombre(maximo 15 caracteres):";
cin.getline(segundo,16);
cout << "Ingrse apellido(maximo 15 caracteres).......:";
cin.getline(apellido,16);
strcat(primer," ");
strcat(segundo," ");
strcat(primer,segundo);
strcat(primer,apellido);
cout << "Nombre completo....: " << primer << endl << endl;
system("pause");
return 0;
}
Desde ya muchas gracias por la ayuda que puedas brindarme
un gran abrazo
Daniel
Valora esta pregunta


0