# cin-Problem mit Leerzeichen



## MSinistar (29. September 2003)

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


----------



## Sinac (29. September 2003)

Hm, das gabs schon n paar mal, haste mal gesucht?
Naja, ich hatte das auch mal und bei mit  das so:

```
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


----------

