Was ist der Unterschied zwischen cin.ignore
und cin.sync
?Der Unterschied zwischen cin.ignore und cin.sync
Antwort
cin.ignore
verwirft Zeichen bis zur angegebenen Nummer oder bis das Trennzeichen erreicht ist (falls vorhanden). Wenn Sie es ohne Argumente aufrufen, verwirft es ein Zeichen aus dem Eingabepuffer.
Zum Beispiel ignoriert cin.ignore (80, '\n')
entweder 80 Zeichen oder so viele wie es gefunden wird, bis es einen Zeilenumbruch erreicht.
cin.sync
verwirft alle ungelesenen Zeichen aus dem Eingabepuffer. Dies ist jedoch nicht bei jeder Implementierung garantiert. Daher ist ignore
eine bessere Wahl, wenn Sie Konsistenz wünschen.
cin.sync()
würde nur löschen, was übrig ist. Die einzige Anwendung ich für sync()
denken kann, die nicht mit ignore
ist ein Ersatz für system ("PAUSE");
getan werden kann:
cin.sync(); //discard unread characters (0 if none)
cin.get(); //wait for input
Mit cin.ignore()
und cin.get()
, das ist ein bisschen eine Mischung sein könnte:
cin.ignore (std::numeric_limits<std::streamsize>::max(),'\n'); //wait for newline
//cin.get()
Wenn ein Zeilenumbruch übrig geblieben ist, wird ignore
einfach übersprungen. Das Setzen beider wartet jedoch auf zwei Eingaben, wenn keine neue Zeile vorhanden ist. Das Verwerfen von allem, was nicht gelesen wird, löst dieses Problem, ist aber wiederum nicht konsistent.
- 1. ist die Sequenz zwischen cin.clear() und cin.ignore() erforderlich?
- 2. Unterschied zwischen Vorzeichen & und *?
- 3. Unterschied zwischen numpy.logical_and und &
- 4. Unterschied zwischen. und #
- 5. VBA: Unterschied zwischen & und +
- 6. Unterschied zwischen "**/* /" und "** /"?
- 7. Unterschied zwischen = und: =
- 8. MySQL: Unterschied zwischen ', `,' und '
- 9. Unterschied zwischen // und http: //
- 10. Unterschied zwischen `% in%` und `==`
- 11. Unterschied zwischen $ # und $ {# @}
- 12. Der Unterschied zwischen GotFocus und GotKeyboardFocus
- 13. Der Unterschied zwischen Kopf und Schwanz Rekursion
- 14. Was ist der Unterschied zwischen `==` und `ist`?
- 15. Der tatsächliche Unterschied zwischen UIAccessibilityLayoutChangedNotification und UIAccessibilityScreenChangedNotification?
- 16. Was ist der Unterschied zwischen:.! und: r !?
- 17. Was ist der Unterschied zwischen Difftime und '-'?
- 18. der Unterschied zwischen os.mkdir() und os.makedirs()
- 19. Der Unterschied zwischen bash und Python Rohre
- 20. Was ist der Unterschied zwischen $ und $$?
- 21. Unterschied der Enum zwischen Java und C++?
- 22. Der Unterschied zwischen OnActionExecuted und OnResultExecuting
- 23. Was ist der Unterschied zwischen Verilog! und ~?
- 24. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 25. Der Unterschied zwischen HttpCookie und Cookie?
- 26. Der Unterschied zwischen unsigned long und UINT64
- 27. Was ist der Unterschied zwischen/* ... */und/** ... */
- 28. , was der Unterschied zwischen webrequest und httpwebrequest
- 29. Der Unterschied zwischen simpleCV und openCV
- 30. Der Unterschied zwischen Symfony und Silex
können Sie mir spezifische Implementierungen zeigen, die cin.sync nicht sicher sind! – 5fox
@ 5fox: Ich kann Ihnen Implementierungen zeigen, wo es nichts macht: http://ideone.com/AR8lB –
ignore() sollte vor cin oder nach cin aufgerufen werden? Um genau zu sein, muss ich zum ersten Mal, wenn ich für cin gehe, unerwünschte Daten im Puffer spülen, wenn überhaupt? Oder wird Programm alles spülen, wenn main eingegeben wird? Aber was ich bemerkte, ist, dass wenn wir ignore() aufrufen, es erstmalig auf ein Leerzeichen wartet. – Rajesh