Zeichenkette speichern



  • Guten Tag!
    Habe folgendes Problem...was in meinem C++ Buch nicht drin steht...komisch, aber ok.
    Also: Wenn jemand einen Satz eingibt, dann kann ich den ja nicht einfach mit cin speichern, sondern, dann nimmt er ja nur das letzte Wort...wie mache ich, dass er den ganzen Satz nimmt?

    (Die Frage ist peinlich *g*, aber bin halt totaler Anfänger:))



  • std::getline



  • string seitentitel;
        cout << "Titel der Seite eingeben: " << endl;
        getline(cin, seitentitel);
    

    Wieso klappt das nicht? Was amche ich da falsch..wäre dankbar für jede Hilfe



  • std::string string;
    std::cout << "Input: " << std::flush;
    std::getline(std::cin, string);
    

    sollte eigentlich problemlos gehen ...



  • danke schön...probier es gleich...wieso benutzt ihr eigentlich das std::?



  • weil durch die neuen bibos die cout anweisung in einem namensraum liegt -> std;

    die namensräume wurden eingeführt damit es keine überschneidungen der variablen bei großen projekten gibt.

    also man kann

    using namespace std;
    

    schreiben und man benötigt kein std:: mehr oder man ladet explizit nur einen bestimmten bereich des "namensraum"
    mit:

    using std::cout
    
    cout << " blablabla"; 
    //jedoch nicht cin
    std::cin>> a;
    


  • aso und das würde zeit sparen bei großen projekten --> schneller laden und laufen?



  • Nein, zur Laufzeit macht das keinen Unterschied, bestenfalls sparst du dir etwas Schreibarbeit beim Programmieren.



  • CStoll schrieb:

    Nein, zur Laufzeit macht das keinen Unterschied, bestenfalls sparst du dir etwas Schreibarbeit beim Programmieren.

    ... und außerdem könntest Du eigene Implementationen einbauen:

    #include <iostream> // hier "IOKram" aus std:: "importieren"
    #include <string>  // hier strings aus std:: "importieren"
    #include "Simon2Lib" // hier meine eigenen Implementationen
    
    using std::cin; // wo "cin" steht: std::cin verwenden
    using std::string; //dito für string
    using Simon2::cout; // ABER: mein eigenes cout verwenden
    
    int main() {
      string seitentitel;
      cout << "Titel der Seite eingeben:" << endl;
      getline(cin, seitentitel);
      cout << "seitentitel: " << seitentitel << "\n";
      return 0;
    }
    

    So kann man relativ einfach an einer Stelle (beim "using") gezielt eine andere Implementation (hier cout) unterschieben....

    Gruß,

    Simon2.


Anmelden zum Antworten