In caso di ifstream
in C++, in quali condizioni sono impostati i flag failbit
e badbit
?C++ ifstream failbit e badbit
risposta
Secondo cplusplus.com:
failbit è generalmente fissato da un'operazione di input quando l'errore è stato legato alla logica interna dell'operazione stessa, così altre operazioni sul flusso può essere possibile. Mentre il bitbit viene generalmente impostato quando l'errore comporta la perdita di integrità del flusso, che è probabile che persista anche se viene eseguita un'operazione diversa sul flusso. badbit può essere controllato indipendentemente chiamando la funzione membro cattiva.
In semplici parole, se si ottiene un numero di quando si aspettano di recuperare un lettera, è failbit
. Se si verifica un errore grave, che interrompe la possibilità di leggere dallo stream a tutti - è un badbit
.
Tranne le bandiere menzionate ce n'è una terza abbastanza simile - eofbit
. È possibile controllare lo stato utilizzando diverse funzioni: ios::fail
, ios::good
e ios::bad
E si può prendere confidenza con iostream library alla risorsa MSDN troppo.
Infine, se si cerca per il corretto soluzione di come gestire tutti i bit di errore e le eccezioni durante la lettura dal file (o l'accesso qualche file o directory) , consiglio vivamente di leggere un molto completo e ben -articolo scritto "Reading files in C++ using ifstream: dealing correctly with badbit, failbit, eofbit, and perror()", al termine del quale troverete alcuni Ideal solutions. L'articolo vale la pena di leggere davvero.
- 1. C++ Funzione ifstream e separatori di campo
- 2. C++, lettura di un file utilizzando ifstream
- 3. Ifstream open() non imposta i bit di errore quando argomento è una directory
- 4. con ifstream
- 5. ifstream, byte letti?
- 6. Converti ifstream in istream
- 7. iteratore bidirezionale su file/ifstream
- 8. ifstream e ofstream o fstream using in e out
- 9. Come leggere le variabili int non firmate dal file correttamente, usando ifstream?
- 10. Progettazione di classe std :: ifstream
- 11. In C++, puoi impostare manualmente il failbit di un flusso? Come?
- 12. Se std :: ws genera failbit alla fine del file?
- 13. Perché sto ricevendo questo errore ifstream?
- 14. Nessuna funzione di corrispondenza - ifstream open()
- 15. Che cosa fa effettivamente ifstream :: rdbuf()?
- 16. Nessun costruttore corrispondente per l'inizializzazione di 'ifstream'
- 17. ifstream: controllare se aperto con successo
- 18. ifstream: come sapere se il file specificato non esiste
- 19. Trova la fine del flusso per cin & ifstream?
- 20. Perché mentre (std :: ifstream >> s) funziona?
- 21. Ricerca in file di grandi dimensioni con ifstream
- 22. Utilizzo dell'operatore di estrazione ifstream C++ >> per leggere i dati formattati da un file
- 23. C++: la variabile 'std :: ifstream ifs' ha l'inizializzatore ma il tipo è incompleto
- 24. Come restituire un ifstream indietro all'inizio di una riga che è stata appena letta in C++?
- 25. Ripristino dello stato di fine file di un oggetto ifstream in C++
- 26. Come ottenere il percorso del file da std :: ifstream in C++
- 27. C++ L'oggetto ifstream è uguale a nullptr ma non è un puntatore?
- 28. OpenCV cv :: Mat to std: ifstream per la codifica base64
- 29. Perché ifstream :: legge molto più velocemente rispetto all'utilizzo degli iteratori?
- 30. ifstream :: open non funzionante in modalità debug di Visual Studio
http://cplusplus.com/reference/iostream/ios/fail/ – BoBTFish
@Jake Hai letto la documentazione? –