Schon wieder Problem mit dem Fenster



  • Konsolen-FAQ "Automatisches Schließen verhindern".

    MfG SideWinder



  • Habe ich ja schon alles gemacht bevor ich hier gepostet habe. Da stand man soll ans Ende "cin.ignore(); " schreiben (siehe auch meinen Quelltext). Aber das Fenster schliesst sich bei diesem Programm trotzdem. Wenn ich nur int verwende, dann klappt es, aber so?

    THX

    WingMan



  • Nein, nicht nur cin.ignore(), schau genau 😉 - alle 3 Zeilen musst du einfügen!

    MfG SideWinder



  • cin.sync();
    cin.get();

    cu



  • Nö, schau lieber mal in die FAQ - dachte auch vorher an cin.sync(), aber Hume hat mich eines besseren belehrt!

    MfG SideWinder



  • Scheisse 😡 ich bin echt zu doof, könte bitte einer so freundlich sein und mir den Code so umändern das sich dieses blöde Fenster nicht mehr schliesst? BITTE !

    Bin am verzweifeln, möchte gerne C++ lernen, aber wie, wenn ich nie sehen kann, ob es auch wirklich funktioniert? 😕

    Hier noch einmal der Code, habe auch die Zeilen aus der FAQ eingefügt, klappt trotzdem nicht, warum?

    #include<iostream>
    
    using namespace std;
    
    int main()
     {
      char b;
      cout << "Bitte einen Buchstaben eingeben: " ;
       cin >> b;
        cout << b << endl;
    
        std::cin.clear ();
        std::cin.ignore ( std::cin.rdbuf () -> in_avail () );
        std::cin.get ();
     }
    

    Schonjetzt einmal Danke für Eure Hilfe und Eure geduld mit mir blutigem Anfänger 🕶

    Gruß

    WingMan



  • So jetzt bin ich der Dumme...habe keine Ahnung warum es bei dir nicht funktioniert...

    Sollten alle Stricke reißen, versuch einmal folgendes anstatt der 3 Zeilen:

    #include <conio.h> // oben einfügen
    #include <windows.h> // oben einfügen
    
    ...
    
    FlushConsoleInputBuffer ( GetStdHandle ( STD_INPUT_HANDLE ) );
    getch ();
    

    Hoffentlich schaut ein C++-Profi rein, aber bei mir funktioniert dein Quelltext (hab jetzt nicht explizit deinen ausprobiert, aber hab diesen schon öfters benützt).

    MfG SideWinder



  • also ich habe genau den code von Wingman eingesetzt und er hat am schluss schön gewartet bis man enter drückt.



  • Hmm, eigentlich sollte das funktionieren. Ich hab noch ne andere Variante zu bieten, die aber in diesem Fall eigentlich das gleiche tut wie dein letzter Code! Aber probiers einfach mal:

    #include<iostream>
    
    using namespace std;
    
    int main()
    {
      char b;
      cout << "Bitte einen Buchstaben eingeben: " ;
      cin >> b;
      cout << b << endl;
    
      cin.clear();
      cin.seekg(0L, ios::end);    // geht ans Ende des Datenstroms
      cin.get();
    
      return 0;
    }
    

    Btw... main() sollte eigentlich immer nen Rückgabewert haben. Und wenn du die Using-Klausel einsetzt (using namespace std; in deinem Fall) ist es unnötig den Namensraum bei Aufrufen nochmal explizit anzugeben (cin.get() anstatt std::cin.get() ).



  • Das std:: kommt bei ihm aus der FAQ, wo ich nicht sicher sein kann, dass jeder ein "using namespace std;" oben hinsetzt ;-).

    MfG SideWinder



  • auf die gefahr das ich mich lächerlich mache, ABER einfach "getch();" am ende dürfts doch auch tun oder? wenn nich, warum?

    grüsse.



  • ok, ok, ich hab jetzt gelesen und nehme obigen beitrag zurück.....

    (hab jetzt auch die faq gelesen..)



  • Hehe, Erleuchtung :).

    MfG SideWinder


Anmelden zum Antworten