Bonjour a tous,
Mon compilateur (GCC) ecrit par defaut les int sous forme ASCII dans les streams.
ex :
ofstream f("test.dat", ios::binary);
f << (int) 456;
et donc dans le fichier j'ai la chaine "456". Tout a fait normal. Seulement moi j'aimerais bien qu'il les stocke sous forme binaire, 4 octets par int, comme ca ca facilite la relecture.
J'ai donc ecrit la fonction suivante (censee surchargee la fonction existante) :
ostream& operator << (ostream& out, const int & i)
{
out.write((char*) &i, sizeof(int));
return out;
}
Qui est censee fonctionner. Mais bizarrement le compilo s'en fout et utilise la fonction standard, et continue a ecrire en ASCII dans le fichier. Ou est la connerie ? 