[c++] Gibt es eine Möglichkeit zu überprüfen, ob ein istream im Binärmodus geöffnet wurde?



Answers

Nein, es gibt keine Möglichkeit das zu testen.

Question

Ich verwende einen istream, der stringstream, ifstream oder ein benutzerdefinierter stream type sein kann, und ich muss wissen, ob er im Falle eines ifstream nicht im binären Modus geöffnet wurde (damit ich eine Ausnahme auslösen kann). Ich habe folgende Methode ausprobiert:

if ((_is.flags() & ios::binary) == 0)
    throw exception(...)

aber keine Ausnahme wird jemals geworfen. Der Test schlägt in diesem Fall fehl, da _is.flags () 0x201 zurückgibt und Ios :: binary 0x20 ist. Gibt es eine Möglichkeit herauszufinden, ob ein Stream im Textmodus geöffnet wurde?




Links