Entrées/Sorties c++

Fermé
Asterix2231 Messages postés 50 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 16 avril 2013 - 17 janv. 2010 à 17:00
Asterix2231 Messages postés 50 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 16 avril 2013 - 18 janv. 2010 à 00:08
Bonjour,

Je cherche à incrémenter des noms de fichier en utilisant la fonction suivante:

int main(){

stringstream fichier;
ostream nom_fichier;

for (int i =0; i< 10; i++){
nom_fichier << "blabla" << i << ".txt";
fichier.open(nom_fichier.str().c_str(), ios::out);
}
}

Ce qui en soit ouvre bien des fichiers, nommés:
blabla1.txt
blabla1.txtblabla2.txt
blabla1.txtblabla2.txtblabla3.txt
etc jusque 10.

Je pense qu'il y a un manipulateur genre flush à utiliser, mais je ne parviens pas à l'en servir. Quelqu'un peut il me donner la commande à rajouter dans mon code pour qu'il fonctionne?

Rq: j'ai toujours la solution de faire passer la lligne 'stringstream nom_fichier;' dans la boucle, et là tout va bien, mais cette solution ne me satisfait pas trop.

Merci d'avance.

2 réponses

Utilisateur anonyme
17 janv. 2010 à 19:06
Bonjour,

essaye un clear() sur nom_fichier :

nom_fichier.clear();
nom_fichier << "blabla" << i << ".txt";

Essaye ça.
0
Asterix2231 Messages postés 50 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 16 avril 2013 11
18 janv. 2010 à 00:08
Non visiblement ce n'est pas ca.

J'ai essayé de vider le buffer de nom_fichier à plusieurs endroits dans le code, rien n'y fait.
0