Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SARGE553413 en 22 Abril 2013, 22:34 pm



Título: Duda de novato con failbit de istream [SOLUCIONADO]
Publicado por: SARGE553413 en 22 Abril 2013, 22:34 pm
Hola a todos.

Tengo una duda con el failbit de ifstream:

Mi duda es que para comprobarlo, en los ejemplos que he visto, escriben:
Código:
 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.


Título: Re: Duda de novato con failbit de istream
Publicado por: rir3760 en 23 Abril 2013, 06:08 am
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í?
Si, es el operador AND a nivel de bits.

¿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


Título: Re: Duda de novato con failbit de istream [SOLUCIONADO]
Publicado por: SARGE553413 en 23 Abril 2013, 15:27 pm
Ok muchas gracias