In C++ hat jeder Strom eine bad
Bit:Was könnte dazu führen, dass ein Stream in den "schlechten" Zustand übergeht?
Dieses Flag von Operationen auf den Strom eingestellt wird durchgeführt, wenn ein Fehler auftritt, während Lesen oder Schreiben von Daten, in der Regel den Verlust der Integrität des Stroms verursacht.
Was würde dazu führen, einen Strom zu "Integrität verlieren" und geben Sie den bad
Zustand? Dies entspricht nicht dem fail
-Status, der am häufigsten auftritt, wenn ein Eingabestream versucht, einen Wert in einer Variablen zu speichern, die diesen Wert nicht akzeptieren kann (z. B. wenn versucht wird, eine Zeichenfolge in eine Ganzzahlvariable zu speichern).
Beachten Sie, dass diese Frage eine allgemeinere Form von c++ file bad bit ist, die für Dateieingangsströme spezifisch ist; Diese Frage ist kein exaktes Duplikat, da sie im Allgemeinen sowohl für Eingabe- als auch Ausgabeströme gilt.
Vielleicht ein Multibyte-kodierter Stream, der auf eine ungültige Multibyte-Sequenz trifft? –
@KerrekSB, das würde wahrscheinlich das 'fail'-Bit setzen, nicht das' bad'-Bit, da der Stream durch 'ios :: clear()' und 'ios :: ignore()' wiederhergestellt werden könnte. Dies ist einfach ein Fall von ungültiger Eingabe; Ich glaube nicht, dass der Stream die Integrität verliert. – bwDraco