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


Anmelden zum Antworten