Pufferleerung nach CIN-Eingabe
-
Hallo,
habe folgendes "Problem", wenn ich eine CIN-Eingabe gemacht habe und
anschließend eine CIN.GETLINE-Eingabe folgt, springt er über diese CIN.GETLINE-Eingabe drüber.Momentan löse ich dieses "Problem" in dem ich zwischen der CIN-Eingabe und der CIN.GETLINE-Eingabe eine Pufferleerung (CIN.GETLINE) vornehme:
BEISPIEL:
void eingabe (satz &adresse)
{
int z=0;
char bildschirmpuffer[20];cout<<"Wieviele Adresseingaben wollen Sie vornehmen: "<<flush;
cin>>z;cin.getline(bildschirmpuffer ,sizeof(bildschirmpuffer));
//PUFFERLEERUNG!for (int i=0; i<z; i++)
{
cout<<"Name: "<<flush;
cin.getline(adresse.name ,sizeof(satz));cout<<"Vorname: "<<flush;
cin.getline(adresse.vorname ,sizeof(satz));cout<<"Strasse: "<<flush;
cin.getline(adresse.strasse ,sizeof(satz));cout<<"Hausnummer: "<<flush;
cin>>adresse.nummer;cin.getline(bildschirmpuffer ,sizeof(bildschirmpuffer));
//PUFFERLEERUNGdatei.write((char*)&adresse,sizeof(satz));
}
}Gibt es hierzu eine elegantere Lösung?
-
Ich glaub mich zu errinern es war cin.sync() ... probier das einfach mal
-
std::cin.clear (); std::cin.ignore ( std::cin.rdbuf () -> in_avail () );
MfG Eisflamme