c'è un modo per controllare se c'è qualcosa in cin? Ho provato peek() ma se non c'è niente peek() aspetta input e questo non è quello che voglio. GrazieCome verificare se c'è qualcosa in cin [C++]
6
A
risposta
5
Non è possibile utilizzare cin per leggere le sequenze di tasti e quindi continuare a fare qualcos'altro se non c'è nulla disponibile, che credo sia ciò che si potrebbe desiderare. cin è un flusso bufferizzato e semplicemente non funziona in questo modo. In effetti, non c'è modo di farlo utilizzando lo standard C++: dovrai utilizzare le funzionalità specifiche del sistema operativo.
4
Gli stream C++ e gli streambuf sono sincroni, ovvero bloccano finché non c'è abbastanza input da leggere. Non esiste un modo portatile per controllare un flusso in modo asincrono. Valuta la possibilità di chiamare peek() da un thread separato.
Problemi correlati
- 1. Come cin Space in C++?
- 2. modo pythonic per verificare se qualcosa esiste?
- 3. Come verificare se l'iteratore STL punta a qualcosa?
- 4. Verificare se qualcosa è un'istanza di ArrayCollection
- 5. Come verificare se array vuoto in C
- 6. C++ Cout & Cin & System "Ambiguous"
- 7. In C#, come verificare se una stringa contiene un intero?
- 8. Obiettivo c - qualcosa come c?
- 9. Come verificare se il file esiste in Qt in C++
- 10. Come verificare se localhost
- 11. Uso di cin in QtCreator
- 12. Come si usa cin tra stringhe in C++?
- 13. Come verificare se un socket è collegato/disconnesso in C#?
- 14. Come verificare se un file è già aperto in C
- 15. Come verificare se un tipo è una stringa in C#?
- 16. Come verificare se la directory è nascosta in C#?
- 17. Come verificare se è installato un servizio Windows in C#
- 18. Come verificare se una DLL COM è registrata in C#
- 19. Come verificare se esiste directory in C++ e WinAPI
- 20. Come verificare se un'interfaccia ne estende un'altra in C#?
- 21. Come posso verificare che "qualcosa" sia un hash in Perl?
- 22. "" + qualcosa in C++
- 23. Valore predefinito per variabile in C++ usando cin >>
- 24. C++ cin char read symbol-by-symbol
- 25. Come verificare se qualcosa esiste in un database postgresql usando django?
- 26. utilizzando `include?` In ruby per verificare se qualcosa è in un hash
- 27. Verificare se un valore è definito in un C enum?
- 28. Verificare se il socket è in ascolto in C
- 29. Come verificare se la stringa C è vuota
- 30. Come verificare se un oggetto è definito?
Grazie ragazzi per le vostre risposte. –
Penso che lo standard consenta l'implementazione di 'cin' che entra nello stato EOF se nessun input attende. Tuttavia, le librerie standard dei compilatori che conosco (che includono MS VS, Borland e GCC) non forniscono tale implementazione. (Non sono sicuro perché non so se lo stream può smettere di essere nello stato EOF da solo e questo è ciò che 'cin' dovrebbe fare sul tasto.) –
Lo stato di eof è il risultato di una mancata lettura - ha vinto essere impostato a meno che non si faccia una lettura. –