Ouverture et écriture de données en C++

Résolu
cric -  
 cric -
Bonjour,



Voila, j'ouvre un fichier dans lequel il m'écrit mes données:

ofstream fichier("donnees.txt",ios::out | ios::trunc);
fichier <<"temps: "<< temps<<endl;

Puis je lui demande d'écrire une autre donnée :

if(i<Nevent-1){
Histo2D->Fill(energy[i+1],delta_energy[i]);
}
fichier<<"energy= "<<energy[i]<< endl;
//cout << "energy: " << energy[i]<< endl;
fichier.close()

Le problème c'est qu'il n'écrit pas dans le fichier donnee, l'énergie. Par contre quand je fais un cout il me sort toutes les énergies.
Pouvez-vous m'aider?
Merci d'avance
A voir également:

6 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Est-ce qu'il a ecrit le temps ?
vérifie l'état de ton flux avant d'écrire dedans.
0
cric
 
oui il a écrit le temps
0
cric
 
Bon ben ce que j'ai fais j'ai créé un nouveau fichier
ofstream donnees("d.txt",ios::out | ios::trunc);
donnees<<"energy= "<<energy[i]<< endl;
donnees.close();

Mais il m'affiche qu'une valeur et ce qu'il faurait c'est qu'il m'affiche toutes les valeurs.
Je ne vois pas où est le problème...
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
là comme ça, on ne peux savoir. Mets un morceau substantiel de ton code ou un démonstrateur du problème.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cric
 
en fait, je lis des données au départ. Puis après je trace des histos d'énergie. Jusqu'ici tout va bien. Et c'est quand je lui demande d'écrire energy[i] qu'il m'écrit une seule valeur contrairement au cout où il me sort une multitude de valeurs.

for(int i=0; i<Nevent; i++){

if(i<Nevent-1){
Histo2D->Fill(energy[i+1],delta_energy[i]);
}

ofstream donnees("d.txt",ios::out | ios::trunc);
donnees<<"energy= "<<energy[i]<< endl;
donnees.close();
//cout << "energy : " << energy[i]<< endl;
Histo_energy->Fill(energy[i]);

etc..}
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
C'est normal si tu ouvre à chaque fois ton fichier dans la boucle, tu écrases ce que tu as écrit avant. Je crois que si tu voulais faire comme ça, il faudrai mettre ios::app et non ios::trunc.
Mets ce qui concerne le fichier en dehors de la boucle et ça devrais fonctionné. Et en plus ça sera plus optimiser (ouvrir et fermer un fichier ça prend du temps).
0
cric
 
merci!!
0