Pergunta

Eu estou usando um istream que poderia ser stringstream, ifstream ou um tipo de fluxo definida pelo usuário e eu preciso saber se, no caso de uma ifstream, não foi aberto no modo binário (para que eu possa lançar uma exceção ). Eu tentei o seguinte método:

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

, mas nenhuma exceção é sempre acionada. O teste falhar neste caso, porque _is.flags () retorna 0x201 e ios :: binary é 0x20. Existe uma maneira de descobrir se um fluxo foi aberto em modo texto?

Foi útil?

Solução

bandeiras () retorna ios_base :: fmtflags que está formatando bandeiras , enquanto binário é uma href="http://www.cplusplus.com/reference/iostream/ios_base/openmode.html" rel="noreferrer"> ios_base :: openmode bandeira

Outras dicas

Não, não há nenhuma maneira de testar isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top