Después de de nuestra larga selección de información dimos con la solución esta aprieto que presentan ciertos los lectores. Te brindamos la respuesta y nuestro objetivo es resultarte de gran apoyo.
Solución:
Tienes dos problemas:
-
Asegurándose de leer los bytes que desea (ni menos, ni más) de la secuencia.
Recomiendo esta sintaxis:
uint32_t a;
inFILE.read(reinterpret_cast
(&a), sizeof(a)); -
Asegúrese de interpretar esos bytes con el orden de bytes correcto.
P: Si está en una PC, su CPU probablemente sea little endian. ¿Sabe si su flujo de datos también es little-endian o es big-endian?
Si los datos son big-endian, consideraría las funciones de red estándar para acomodar el orden de bytes:
ntohl()
etc: http://www.retran.com/beej/htonsman.html
ADEMÁS:
Siga los consejos de Hcog y Daniel Jour: no se olvide del parámetro “modo abierto” y no olvide verificar los errores de “abrir archivo”.
Abra el archivo en modo binario y luego use read()
método, algo como:
uint32_t a;
ifstream file ("file", ios::in | ios::binary);
if (file.is_open())
file.read ((char*)&a, sizeof(a));
Si para ti ha sido provechoso este post, sería de mucha ayuda si lo compartieras con más entusiastas de la programación y nos ayudes a extender nuestro contenido.