Schon wieder Problem mit dem Fenster
-
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