ecrite dans un fichier : il m'ecrit n'importe quoi ?
Bonjour,
j'ai un bug assez penible, j'ecris dans un fichier mais le resultat n'est pas celui attendu :
voici mon code :
gestion du fichier :
Code:
1 2 3 4 5 6
|
std::ofstream fh("test.txt", std::ios::out | std::ios::trunc);
if(!fh) return;
fh<<"TEST!!!"<<std::endl;
worldarea->SaveState(fh); // liste les worlds
fh.close(); |
je passe par une premiere fonction ici :
Code:
1 2 3 4 5 6 7 8 9 10
|
void worlds::SaveState(std::ostream& sav)
{
sav<<"===WORLDS"<<std::endl;
for (std::vector<world*>::iterator it=vWorlds.begin();it!=vWorlds.end();++it)
{
sav<<"->"<<it; // j'ai ajouté le "->" pour reperage dans le fichier
}
sav<<"---WORLDS"<<std::endl;
} |
et enfin, là ou ca debloque :
Code:
1 2 3 4 5 6
|
std::ostream& operator<< (std::ostream& sav, const world &w)
{
sav<<w.id<<" "<<w.complete<<" "<<w.rings<<std::endl;
return sav;
} |
ce me semble assez simple comme code,
et voilà ce que ca donne dans le fichier :
Code:
1 2 3
| TEST!!!
===WORLDS
->00A19850->00A19854->00A19858->00A1985C---WORLDS |
voilà, je ne comprends pas : tout ce qui se passe en dehors de l'operateur << fonctionne, mais pas du tout ce qu'il se passe dedans (même le std::endl ne revient pas à la ligne)
j'ai pas précisé mais id est un int, complete un bool et rings un int.
si vous avez une idée...
D'avance, merci.