Qual è la differenza tra cin.ignore
e cin.sync
?La differenza tra cin.ignore e cin.sync
risposta
cin.ignore
rigetti personaggi, fino al numero specificato, o fino a quando viene raggiunto il delimitatore (se inclusi). Se lo chiami senza argomenti, elimina un carattere dal buffer di input.
Ad esempio, cin.ignore (80, '\n')
ignorerebbe o 80 caratteri o quanti ne trova finché non raggiunge una nuova riga.
cin.sync
rigetti tutti i caratteri letti dal buffer di ingresso. Tuttavia, non è garantito farlo in ogni implementazione. Pertanto, ignore
è una scelta migliore se si desidera la coerenza.
cin.sync()
sarebbe solo chiaro che cosa sta a sinistra. L'unico uso che posso pensare per sync()
che non può essere fatto con ignore
è un sostituto per system ("PAUSE");
:
cin.sync(); //discard unread characters (0 if none)
cin.get(); //wait for input
Con cin.ignore()
e cin.get()
, questo potrebbe essere un po 'di una miscela:
cin.ignore (std::numeric_limits<std::streamsize>::max(),'\n'); //wait for newline
//cin.get()
Se ci fosse una nuova riga, basta mettere ignore
sembrerà saltarlo. Tuttavia, mettendo entrambi attenderanno due input se non c'è una nuova riga. Scartare tutto ciò che non è letto risolve questo problema, ma, ancora una volta, non è coerente.
- 1. La differenza tra $ * e $ @
- 2. Qual è la differenza tra = e: =
- 3. La differenza tra HttpCookie e Cookie?
- 4. Qual è la differenza tra Verilog! e ~?
- 5. La differenza tra Symfony e Silex
- 6. cos'è la differenza tra dijit e dojo
- 7. Differenza tra la fase libgdx e Screen
- 8. La differenza tra GotFocus e GotKeyboardFocus
- 9. Qual è la differenza tra? : e ||
- 10. qual è la differenza tra [[], []] e [[]] * 2
- 11. La differenza tra unsigned long e UINT64
- 12. Qual è la differenza tra $ e $$?
- 13. Qual è la differenza tra ("") e (null)
- 14. La differenza tra MousEventArgs.Location e Cursor.Position
- 15. Qual è la differenza tra dict() e {}?
- 16. La differenza tra sys.stdout.write e stampa?
- 17. Qual è la differenza tra " " e ""?
- 18. Qual è la differenza tra {0} e ""?
- 19. Qual'è la differenza tra Java.Net.Uri e Android.Net.Uri
- 20. La differenza tra Task.Factory.FromAsync e BeginX/EndX?
- 21. La differenza tra Deprecato, ammortizzati e obsoleto
- 22. Qual è la differenza tra `##` e `hashCode`?
- 23. Qual è la differenza tra {0} e +?
- 24. Qual è la differenza tra .ToString() e + ""
- 25. qual è la differenza tra:.! e: r !?
- 26. Vulkan: la differenza tra vkGetInstanceProcAddress e vkGetDeviceProcAddress
- 27. Differenza tra funzione e la chiusura assegnazione
- 28. Android la differenza tra onHandleIntent e onStartCommand
- 29. La differenza tra com.mysema.query e com.querydsl?
- 30. VBA: Differenza tra & e +
puoi mostrarmi implementazioni specifiche che cin.sync non è sicuro! – 5fox
@ 5fox: Posso mostrarti le implementazioni in cui non fa nulla: http://ideone.com/AR8lB –
ignore() dovrebbe essere chiamato prima di cin o after cin? Per essere precisi, la prima volta quando vado per cin, devo scaricare dati indesiderati nel buffer, se ce ne sono? O programmerai il flush di tutto quando viene inserito main? Ma quello che ho notato è che se chiamiamo ignore(), attende per la prima volta un carattere non spaziale. – Rajesh