system("pause") vs cin.ignore
-
Hi,
was ist denn der Unterschied zwischen system("pause") und cin.ignore.
cin.ignore ... "nervet" mich en bisschen, da ich nicht weiß warum er ab und an nicht unterbricht ???
mfG
Ph&%$$§""§$%
-
Der Nachteil von system("PAUSE"); ist, dass es nicht plattformunabhängig ist. Dein Problem, das cin.ignore nicht immer wartet, liegt wahrscheinlich daran, dass noch Zeichen im Buffer sind. Das kannst du so verhindern:
std::cin.ignore(9999,'\n');Hier wartet er 9999 Zeichen lang, bis eins davon ein \n ist. Der Nachteil ist, dass man das nur mit Return bestätigen kann.
mfg.
-
joomoo schrieb:
Der Nachteil von system("PAUSE"); ist, dass es nicht plattformunabhängig ist. Dein Problem, das cin.ignore nicht immer wartet, liegt wahrscheinlich daran, dass noch Zeichen im Buffer sind. Das kannst du so verhindern:
std::cin.ignore(9999,'\n');Hier wartet er 9999 Zeichen lang, bis eins davon ein \n ist. Der Nachteil ist, dass man das nur mit Return bestätigen kann.
mfg.
cin.ignore() soll ja auch gar nicht direkt waten sondern nur alle Zeichen im Puffer als "ignored" löschen:
cin.ignore(cin.rdbuf()->in_avail();Nur scheint der Standard das nicht fix vorzugeben.
MfG SideWinder
-
Probiers mal so:
cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin.get();Für system() siehe C++ FAQ - Wieso man die Funktion system meiden soll.