Ofstream

kelidric Messages postés 3 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 13 octobre 2008 - 20 févr. 2007 à 12:34
novaghost Messages postés 27 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 4 avril 2007 - 20 févr. 2007 à 17:35
Bonjour,

Je dois créer des profils pour différents utilisateurs. Je veux donc enregistrer dans des fichiers .txt différents toutes les informations pour chacun d'entre eux.
Je ne veux pas mettre dans mon code des ofstream f("user1.txt"); ofstream f("user2.txt"); etc...
L'utilisateur entre son pseudo dans une variable de type string par exemple (string pseudo;), je voudrais que le fichier créé s'intitule pseudo.txt et donc, pour chaque utilisateur, un nouveau fichier du nom du pseudo est créé.
J'ai essayé ofstream f(pseudo); (en convertissant préalablement pseudo en char) mais ca ne créé qu'un fichier basic (pas d'extension .txt) et donc pas lisible (avec ifstream).
Bon j'espère avoir été clair, merci d'avance :)

4 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
20 févr. 2007 à 12:58
C'est pas parce que il n'y a pas d'extension que ton fichier n'est pas lisible. L'extension n'a aucun role !
Et je vois pas trop le pb, suffit que ajoutes ".txt" à ta string pseudo.
kelidric Messages postés 3 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 13 octobre 2008
20 févr. 2007 à 13:23
Bah quand je fais un isftream d'un fichier non .txt il ne me l'affiche pas.
Tu veux que je déclare string pseudo.txt ? Si c'est le cas le compilateur ne l'accepte pas.

PS : je débute en c++ :p
novaghost Messages postés 27 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 4 avril 2007 1
20 févr. 2007 à 15:04
string pseudo=("kelidric");
pseudo.append(".txt",4); //Rajouter l'extension .txt

//peut faut-il passer pseudo en char *
//dans quel cas
size_t size = pseudo.size() + 1;
char * b_pseudo = new char[ size ];
// copier la chaîne
strncpy( b_pseudo, pseudo.c_str(), size );


ofstream f(b_pseudo);

A voir bye
novaghost Messages postés 27 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 4 avril 2007 1
20 févr. 2007 à 17:35
ou sinon :

string pseudo=("kelidric");
pseudo.append(".txt",4); //Rajouter l'extension .txt
ofstream f(pseudo.data());
Rejoignez-nous