//si le fichier data n'existe pas,
//on le cree, on le preformate et on l'ouvre en mode mise a jour
data.open (ficdata.c_str (),ios :: binary | ios :: in);
if (! data.is_open ())
{
fp.open (ficdata.c_str (),ios :: binary | ios :: out);
fp.write ((char*) format,sizeof (SI_Enreg) * NB_ENREG);
fp.close ();
}
fp.open (ficdata.c_str (),ios :: binary | ios :: in | ios :: out);
si j'ecrit ce code, ca marche.
mais si j'ecrit
//si le fichier data n'existe pas,
//on le cree, on le preformate et on l'ouvre en mode mise a jour
data.open (ficdata.c_str (),ios :: binary | ios :: in);
if (! data.is_open ())
{
data.open (ficdata.c_str (),ios :: binary | ios :: out);
data.write ((char*) format,sizeof (SI_Enreg) * NB_ENREG);
data.close ();
}
fp.open (ficdata.c_str (),ios :: binary | ios :: in | ios :: out);
sachent que data et fp sont toutes les deux des fstream, et format est un tableau de NB_ENREG elements de type SI_Enreg.
Pourquoi la première version formate le fichier alors que la deuxième le laisse vide ??? pourtant j'ai vérifié et la condition du if est bien verifiée.
j'utilise visual studio 6.