He hecho este programa de prueva para escribir y leer un int, un float y un byte:
Código C++:
Ver original#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream ou("1.txt", ios::out | ios::binary);
int a = 8765;
float b = 1.2345;
unsigned char c = 255;
ou.write(reinterpret_cast<char *>(&a), sizeof(int));
ou.write(reinterpret_cast<char *>(&b), sizeof(float));
ou.write(reinterpret_cast<char *>(&c), sizeof(unsigned char));
ou.close();
//
ifstream in("1.txt", ios::in | ios::binary);
int q; float w; unsigned char e;
in.read(reinterpret_cast<char *>(&q), sizeof(int));
in.read(reinterpret_cast<char *>(&w), sizeof(float));
in.read(reinterpret_cast<char *>(&e), sizeof(unsigned char));
in.close();
cout << q << endl;
cout << w << endl;
cout << (int) e << endl;
}
Y funciona, pero tengo la sensación que hay algo poco eficiente, sobretodo para el byte.
¿Hay alguna otra forma mejor para trabajar con archivos y datos?