cin-Problem mit Leerzeichen

MSinistar

Grünschnabel
Hi,

ist heute mein erster Tag undschon ein Problem!:)

Also ich bin grad an einer Benutzerrechteverwaltung dran und hab noch ein Problem mit der Eingabe von 'Nachname' und 'Vorname'.

Wenn ich es wie folgt mache:

char vName[25], nName[25];

cout << "Vorname: "; fflush(stdin);
cin >> vName;

cout << "Nachname: "; fflush(stdin);
cin >> nName;

habe ich das Problem das ich keine Namen mit Leerzeichen eingeben kann!

Wenn ich nun aber so mache:

char vName[25], nName[25];

cout << "Vorname: "; fflush(stdin);
cin.getline(vName, 24);

cout << "Nachname: "; fflush(stdin);
cin.getline(vName, 24);

überspringt er mir zum Beispiel 'Nachname' (also keine Eingabe möglich), sobald ich mehr als 24 Zeichen einliest!

Warum das so ist, ist mir schon klar, aber gibt es einen Befehl mit dem ich trotz cin auch Leerzeichen einlesen kann?
Oder wie kann man es machen, dass bei cin.getline(..,..) bei überschreiten der zulässigen Größe der Pufferinhalt gelöscht wird?

Wäre super wenn ihr mir einen Tip geben könntet!

Danke schonmal im Voraus!
Gruß,
MSinistar
 
Hm, das gabs schon n paar mal, haste mal gesucht?
Naja, ich hatte das auch mal und bei mit das so:
Code:
	char NewArt[256], NewAlb[256];
	cout << "Enter Artist: ";
	cin.getline(NewArt,256);
	cout << "Enter Album: ";
	cin.getline(NewAlb,256);
Ist halt wieda das gleiche mit dem Puffer, aber cin sagen es soll Leerzeichen mitlesen geht soweit ich weiß nicht.
Außerdem kannste das Array ja n bißchenh größer machen und nachher die Eingabe checken.
Aber pass auf, wegen Buffer Overflow und so :)
Es geht wohl noch irgendwie mit getline() oda so...

Greetz...
Sinac
 

Neue Beiträge

Zurück