große "Texte" in char/string schreiben



  • Hallo,

    ich übe gerade etwas mit C bzw C++ (eher c) rum und ich versuche
    gerade mehr als zB nur ein Wort in ein Char zuschreiben. Also
    ich möchte dort einen ganzen Satz bzw Textabschnit hinein schreiben.

    zB das in dem Char/String

    Hallo wie gehts?
    Mir gehts gut.
    Das ist ja schön!

    steht.

    ist das irgend wie möglich? Habe da bisher nichts gefunden was
    mir so wirklich weiter geholfen hätte.

    ich bedanke mich schon einmal für Hilfe,

    Kiri



  • Naja also char = Zeichen, char-Array = Zeichenkette 😉 Nullterminierung dran und du hast einen String ...

    \n für neue Zeile ...

    char string[] = "Hallo wie gehts?\nMir gehts gut.\nDas ist ja schön!";
    

    ...

    #include <string>
    
    std::string string("Hallo wie gehts?\nMir gehts gut.\nDas ist ja schön!");
    

    wäre C++ 😉



  • ich denke mal, dass er die eingabe von texten über cin meinte...



  • das "sie" meinte^^

    nein so was meinte ich schon, aber wie es über "cin" geht
    würde mich auch interessieren bzw wie ich ganze Texte aus
    einer Datei in eine Variable "laden" kann. In einen Char kann
    ich schon ein Wort „laden“, aber wenn ich mehr als ein Wort
    rein laden möchte bzw einen Text steht immer nur das erste
    Wort drinne.



  • char ist wirklich nur EIN Zeichen. Du meinst Char-Arrays, auch C-Strings genannt. Wichtiger Unterschied. 😉

    Mit dem Stream-Operator (>>) von cin bekommst du maximal ein Wort, das stimmt. Wenn du eine ganze Zeile willst, nimm getline().



  • ...und wenn Du eine weitere Zeile an einen vorhandenen Text anhängen möchtest, bietet die String-Klasse einen +=-Operator. In C ist das schon schwieriger, da Du Dich um die Längen und den Speicher selbst kümmern musst.

    std::string zeile;
    std::cout << "Geben Sie eine Zeile ein:\n" << std::flush;
    std::getline(std::cin, zeile);
    
    std::string s;
    s  = "Folgendes hat der Benutzer eingegeben:\n";
    s += zeile;
    
    std::cout << s;
    

Anmelden zum Antworten