fichier binaire lecture avec ifstream
Bonjour,
Le code qui suit est extrait d'un fichier source de gmsh.
Il utilise le ''style c'' pour l'écriture.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Bool binary = true;
FILE *fp = fopen(name.c_str(), binary ? "wb" : "w");
fprintf(fp, "$MeshFormat\n");
fprintf(fp, "%g %d %d\n", version, binary ? 1 : 0, (int)sizeof(double));
if(binary){
int one = 1;
fwrite(&one, sizeof(int), 1, fp);
fprintf(fp, "\n");
}
fprintf(fp, "$EndMeshFormat\n"); |
Je tente maintenant de lire un fichier binaire écrit avec le code précédent
en ''style c++'' mais je n'y arrive pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
std::ifstream file(name.c_str(),std::ios::in | std::ios::binary);
std::string line;
file >> line;
double v;
int type, size;
file >> version >> type >> size;
int one;
file.read((char*)(&one),sizeof(int));
file >> line; |
Tout est lu correctement sauf one qui contient une valeur differente de 1.
Je ne vois pas trop ce qui ne va pas ...