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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.