Si hago algo como lo siguiente:¿Por qué no puedo leer los datos binarios de fstream con el operador >>?
ifstream file;
file.open("somefile", ios::binary);
unsigned int data;
file >> data;
Mi corriente siempre establece la failbit
y la data
permanecerá sin inicializar. Sin embargo, si leo un char
o unsigned char
, la transmisión es correcta. perror()
me está diciendo "resultado demasiado grande".
Lo único que vi en Google fue una sugerencia que dice que operator>>
no debe usarse para datos binarios (prefiera read()
), pero creo que el operador es más limpio y fácil de usar, y no requiere lanzando todo.
¿Alguien puede explicar este problema?
Tiene la razón por la cual es así en su respuesta: "dependiendo de si int es de 32 bits o de 64 bits". Actualmente, el código que usa '' es portable, su propuesta no lo es. –
Caleth