Text als Array speichern



  • Hallo miteinander, auch von mir ein verspätetes Frohes Neues

    Zu meiner Frage:
    Ich wollte einen eingegebenen Text (samt Leerzeichen) in einem char-Array speichern. Doch genau die Leerzeichen stellen ein Problem dar, denn schon beim ersten Leerzeichen wird nicht weiter eingelesen.
    Woran könnte das liegen?

    Hier wird der Text eingelesen:
    char text[ 100 ];
    cin >> text ;

    Und hier wollte ich die Länge des Arrays bestimmen...

    int textLaenge ( char text[] )
    {
    int laenge = 0 ;
    while ( text[ laenge ] != '\0' )
    ++laenge ;
    return laenge ;
    }

    Allerdings kommt für den Text "Hallo Welt" nur die Länge 5 raus, da bei dem Lesezeichen abgebrochen wird... ich dachte, dass das '\0' nur am Ende eines Text-Arrays eingelesen wird... sorry Leute, bin ein wenig verwirrt...


  • Mod

    Der Operator >> führt formatierte Leseoperationen auf einen Stream aus. Formatierung heißt unter anderem, dass normalerweise bei Whitespaces getrennt wird und diese auch verworfen werden. Du suchst wahrscheinlich so etwas wie getline. Und warum in aller Welt möchtest du ein char-Array und keinen String benutzen? Es gibt zwar auch ein getline für char-Arrays, aber ich habe dir mit Absicht nur die Version für std::string verlinkt. Wenn du dich selber quälen möchtest, musst du dich schon selber etwas anstrengen und die entsprechende Referenz suchen.



  • Wir haben das an der Uni und leider haben wir den von dir beschriebenen Operator noch nicht behandelt... der Dozent honoriert es auch nicht, wenn man sich selbstständig sowas aneignet, d.h. ich bin darauf angewiesen, was wir bisher gehabt haben.
    Dennoch danke. 🙂
    Hättest du denn vielleicht andere Tipps?


  • Mod

    VollNoob schrieb:

    Wir haben das an der Uni und leider haben wir den von dir beschriebenen Operator noch nicht behandelt...

    Häh? Du hast ihn doch selber benutzt!

    Hättest du denn vielleicht andere Tipps?

    Tja, kommt halt drauf an, was du benutzen darfst. Wird aber auf jeden Fall sehr umständlich.



  • SeppJ schrieb:

    VollNoob schrieb:

    Wir haben das an der Uni und leider haben wir den von dir beschriebenen Operator noch nicht behandelt...

    Häh? Du hast ihn doch selber benutzt!

    Vielleicht meinte er die getline Funktion und nicht den >> Operator.

    Wenn Du nichts anwenden darfst, was ihr nicht schon besprochen habt, dann wird die Lösung Deines Problems schon irgendwo in den Vorlesungsunterlagen sein, nicht?

    Zeilenweise einlesen schreit echt nach "getline(std::istream,std::string)". Blöd, dass ihr sowas nicht beigebracht bekommt, sondern nur diese C-Frickelei, wie es scheint…



  • Ja, sorry, ich meinte getline
    Und ja, das muss wohl irgendwo im Skript stehen... ich find nur keine sehr hilfreichen Hinweise...
    Dennoch danke 🙂


Anmelden zum Antworten