Duda de novato con failbit de istream [SOLUCIONADO]

Iniciado por SARGE553413, 22 Abril 2013, 22:34 PM

0 Miembros y 1 Visitante están viendo este tema.

SARGE553413

Hola a todos.

Tengo una duda con el failbit de ifstream:

Mi duda es que para comprobarlo, en los ejemplos que he visto, escriben:
if ( (entrada.rdstate() & ifstream::failbit ) != 0 ){ .... }
He leído la especificacion en cplusplus.com, pero no entiendo que significa el trozo de
'& ifstream::failbit ', es decir, ahí el '&' ¿es un operador de comparación o algo así?
¿Cómo funciona?

Muchas gracias.

rir3760

Cita de: SARGE553413 en 22 Abril 2013, 22:34 PMHe leído la especificacion en cplusplus.com, pero no entiendo que significa el trozo de
'& ifstream::failbit ', es decir, ahí el '&' ¿es un operador de comparación o algo así?
Si, es el operador AND a nivel de bits.

Cita de: SARGE553413 en 22 Abril 2013, 22:34 PM¿Cómo funciona?
1) Se obtiene el estado del stream (la función rdstate).
2) Se obtiene el patrón de bits que indica una falla en el stream (ifstream::failbit)
3) Se aplica el operador AND a nivel de bits y el resultado sera algún valor diferente de cero si esa bandera esta activada, cero si no lo esta.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language