getline



  • Warum muss der User denn bei

    string text;
    getline(cin, text);
    

    2 mal mit Enter bestätigen? Kann ich das irgendwie umgehen?



  • wieso sollte er das tun müssen?

    hast du getline in einer schleife?



  • beim Einlesen des Themas nein

    cout << endl << "neues Thema bzw. Dateiname (Bsp: neues Thema5): ";
    getline(cin, dateiname);
    

    beim Einlesen des Hilfetextes ja, da muss ich nach Eingabe von QUIT 2 mal bestätigen.
    Liegt es vielleicht an dem cout << endl; ???

    cout << "Und nun zeilenweise Ihr Hilfetext: " << endl;
    
    string hilfezeile;
    while (beenden==false){
    	getline(cin, hilfezeile);
    
    	if (hilfezeile=="QUIT" || hilfezeile=="quit"){
    		beenden=true;
    		cout << endl;
    	}else{
    		os << hilfezeile << endl;
    	}
    }
    


  • Nein, tut es nicht. Es wird wohl an deinem Compiler liegen, lass mich raten: MS Visual C++??? Ich hatte bis vor kurzem das gleiche Problem, habe aber beim Stöbern in diesem Forum die Lösung gefunden:

    http://www.c-plusplus.net/forum/viewtopic.php?t=70431

    Bis dann!



  • Kannst Du mir villeicht sagen, was ich jetzt konkret ändern muss?
    Ich kann mit

    else if (_Tr::eq(_C, _D))
            {_Chg = true;
            _I.rdbuf()->snextc();    // replace snextc with sbumpc
            break; }
    

    irgendwie nicht so viel anfangen

    Danke



  • Du hast 2 Möglichkeiten:

    1. Änder in deinem Include Verzeichnis (in deinem Visual C++ Installationsverzeichnis) den Code selber, d.h. öffne die string Datei mit VC++, such die betreffende Stelle und nimm die Änderung vor.

    2. In dem Beitrag stand noch ein zweiter Link zu HumeSkinnes Seite, wo du eine Zip-datei runterlädst, die alle Bugfixes enthält. In der Installation.txt findest du dann die "Installationsanleitung"

    Ich würde dir zu 2. raten, da du dann gleich mehrere Bugfixes drin hast und du nicht Gefahr läufst, Fehler einzugeben.

    Aber: Mach vorher lieber trotzdem ein Backup von allen Dateien, die du ersetzt.



  • nur mal eine frage wiso nicht

    cin.getline(dateiname);
    

    da ist mir sowas noch nicht pasirt.

    MFG TaccoGo



  • ich bin mir da jetzt nicht ganz sicher, aber meines Wissens besteht da folgender Unterschied:

    cin.getline(dateiname); //Typ char*
    
    getline(cin, dateiname); //Typ string
    

    Aber ich will da nicht zu voreilig sein, das habe ich jedenfalls bisher so verstanden. Wenn ich da falsch liege, dann lass ich mich auch gerne korrigieren. :p



  • ok ich glaub du hast recht.
    ich hab es ausprobirt.
    naja hab ich nicht gewust aber in notfahl kan man ja sting und char* umkonvertiren.

    MFG TaccoGo


Anmelden zum Antworten