Ouverture et écriture de données en C++
Résolu
cric
-
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
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:
- Ouverture et écriture de données en C++
- Fuite données maif - Guide
- Écriture facebook - Guide
- Ecriture en gras - Guide
- Supprimer les données de navigation - Guide
- Page d'ouverture google - Guide
6 réponses
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...
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...
là comme ça, on ne peux savoir. Mets un morceau substantiel de ton code ou un démonstrateur du problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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..}
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..}
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).
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).