Text mit Leerzeichen in einen String
-
Hallo,
ich bin ganz neu im Bereich des Programierens mit C++ (habe frühe mal Basic gelernt und Programmiere PHP).
Ich möcht nun gerne wissen, wie ich in einen String einen Text mit Leerzeichen bekomme. Mein Quellcode sieht momentan so aus:
#include <iostream> #include <string> using namespace std; int main() { string nachname; cout << "Nachname"; cin >> nachname; string vorname; cout << "Vorname"; cin >> vorname; string geburtsdatum; cout << "Geburtsdatum: "; cin >> geburtsdatum; string strasse; cout << "Strasse: "; cin >> strasse; string hausnummer; cout << "Hausnummer: "; cin >> hausnummer; string plz; cout << "Postleitzahl: "; cin >> plz; string ort; cout << "Ort: "; cin >> ort; cout << nachname" "; cout << vorname" "; cout << geburtsdatum" "; cout << strasse" "; cout << hausnummer" "; cout << plz" "; cout << ort" "; };
Wenn ich jetzt aber bei der Starsse einen Straßenname eingebe, der Leerzeichen hat (z.B. Im Krummen Felde), dann funktioniert das ganze nicht mehr
-
forensuche wirkt oft wunder
-
Bin soweit gekommen, das ich herausgefunden habe, das ich getline benutzen soll, finde aber leider kein Beispiel für die Anwendung dieses Befehls.
-
-
string strasse; getline(cin, strasse);
Als nächstes stehst du dann schätzungsweise vor dem Problem das du deinen Input Buffer leeren musst, das erschließt sich aber auch per Forensuche oder irgendeinem brauchbaren C++ I/O Tutorial.
BTW:
cout << nachname" ";
Das funktioniert ganz sicher nicht. Wenn dann << nachname << " "; aber ich glaube ein newline "\n" ist eher das was zu willst.
-
Also habe es jetzt so eingefügt:
string strasse; cout << "Strasse: "; getline(cin, strasse);
Aber jetzt überspringt er die Eingabe bei diesem Feld. Sprich ich kann den String davor eingeben und den String danach, aber beid diesem schreibt er mir einfach nur "Strasse: " und springt dann gleich zum nächsten ???
-
ja natürlich springt er weiter, die gabest dem programm ja auch keine anweisung das er den string wieder ausgeben soll:
string strasse; cout << "strasse eingeben: "; getline(cin, strasse); cout << "Strasse: " << strasse << endl;
-
Es geht nicht ums Ausgeben, er ermöglicht mir gar keine eingabe des strings, wie bei den anderen.
-
Hallo!
string strasse; getline(cin, strasse, '.');
Das dritte Argument ist das Zeichen, mit welchem man die Eingabe beenden kann. In diesem Fall der Punkt, wenn nicht angegeben dann <return>.
Also der dritte Parmeter ist optional.
MfG CSS
-
So habe es jetzt so gelösst:
string strasse;
cout << "Strasse: ";
cin >> strasse;
getline(cin, strasse);hatte vergessen da cin wieder zu setzten
-
Du liest 2mal von der Tastatur, das
cin >> strasse;
kannst du weglassen.
MfG CSS