¿hay alguna forma de comprobar si hay algo en cin? Intenté peek() pero si no hay nada, peek() espera la entrada y eso no es lo que quiero. GraciasCómo comprobar si hay algo en cin [C++]
6
A
Respuesta
5
No puede usar cin para leer las pulsaciones de teclas, y luego continuar haciendo otra cosa si no hay nada disponible, que creo que es lo que puede desear. cin es una transmisión en búfer y simplemente no funciona de esa manera. De hecho, no hay forma de hacerlo con el estándar C++: tendrá que usar funciones específicas del sistema operativo.
4
Las transmisiones en C++ y streambufs son síncronas, es decir, se bloquean hasta que haya suficiente entrada para leer. No hay una forma portátil de verificar una transmisión de forma asincrónica. Considera llamar a peek() desde un hilo separado.
Cuestiones relacionadas
- 1. Cómo comprobar si hay un vacío Gridview
- 2. cómo comprobar si hay una división por cero en c
- 3. ¿Cómo comprobar si el iterador STL apunta a algo?
- 4. Cómo usar Cin Space en C++?
- 5. Comprobar si OneToOneField hay ninguno en Django
- 6. usando `include?` En ruby para comprobar si hay algo en un hash
- 7. cómo comprobar si IsNumeric
- 8. C++: ¿cómo puedo verificar si el buffer cin está vacío?
- 9. Cómo comprobar si hay un valor nulo en VB.NET
- 10. ¿Hay algo como instanceOf (clase <?> c) en Java?
- 11. Python: cómo comprobar si aún hay disponible una referencia débil
- 12. ¿Cómo puedo comprobar si hay blanco en DataView.RowFilter
- 13. Comprobar si la tabla existe en C#
- 14. cómo comprobar si hay valor NaN en Objective-C (SDK iPhone)
- 15. ¿Cómo puedo comprobar si existe un objeto en C++
- 16. Java equivalente de cin (C++)
- 17. Comprobar si hay duplicados en gran vector de cadenas
- 18. ¿Cómo comprobar si una interfaz se extiende otra en C#?
- 19. Cómo comprobar si el objeto se ha dispuesto en C#
- 20. Cómo comprobar si un objeto es serializable en C#
- 21. Comprobando si algo fue malloced
- 22. C++ a C#: cin a Console.Read
- 23. PowerShell: cómo comprobar si hay varias condiciones (existencia de carpeta)
- 24. Java Result Establecer cómo comprobar si hay resultados
- 25. Postgres - ¿Cómo comprobar si hay una matriz vacía
- 26. ¿Cómo compruebo si hay imágenes TIFF corruptas en C#?
- 27. ¿Cómo comprobar si un tipo es una cadena en C#?
- 28. pronta zsh - comprobar si hay trabajos en segundo plano
- 29. c Objetivo: Comprobar si enteros/int/número
- 30. ¿Cómo comprobar si existe niño
Gracias chicos por sus respuestas. –
Creo que Standard permite la implementación de 'cin' que entra en el estado EOF si no hay entradas esperadas. Sin embargo, las bibliotecas estándar de compiladores que conozco (que incluyen MS VS, Borland y GCC) no proporcionan dicha implementación. (No estoy seguro porque no sé si stream puede dejar de estar en estado EOF por sí mismo y esto es lo que 'cin' debería hacer al presionar una tecla). –
El estado eof es el resultado de una falla de lectura: ganó no se establecerá a menos que hagas una lectura. –