Selectionner le nom du fichier ofstream

Résolu
janiaut Messages postés 8 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 30 août 2006 - 29 août 2006 à 09:35
janiaut Messages postés 8 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 30 août 2006 - 29 août 2006 à 18:35
Bonjour, 

   Je suis débutant en C++ et j'ai quelques souci dans l'utilisation de ofstream. La fonction ofstream marche très bien mais j'aurais bien voulu pouvoir changer le nom en fonction du nom taper au clavier

      si le nom du fichier est Files.txt j'aurais aimé appelé mon fichier de sortie OutputFiles.txt.

J'ai essayé : 
   cin >>   FileName;    -- saisie au clavier 
   std::string outputFile;
   outputFiles = "Output"+FileName;
   essageOutput(outputFiles );

J'ai une erreur qui me dis qu'il est impossible de faire + entre deux pointeurs;

Pouvez m'aider, ou me donner une autre solution.

Merci beaucoup

4 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 août 2006 à 11:05
Ce qui marche c'est l'addition de 2 strings et pas de pointeur donc:


string chaine1("coucou");

string chaine2 = chaine1 + string(" ca va ?");
3
janiaut Messages postés 8 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 30 août 2006
29 août 2006 à 18:35
En cherchant j'ai trouvé. J'ai écris cela

std::string FileName;
std::cout<<"Le nom du fichier"<<std::endl;
cin>>FileName
ifstream file (FileName.c_str());
std::string FileNameOutput = (string) "OUT" + FileName;
ofstream MessageOutput (FileNameOutput.c_str());

En fait ce qui ma posé problème c'est la conversion string vers char* (c_str())
3
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 août 2006 à 09:48
Mets ta fonctin complete ici.
En effet si tu as un pointeur, l'opérateur + n'a aucun sens.
Deux poiteurs ne "s'ajoutent" pas. Par contre pour deux string cela marche tout a fait.

Exemple:
string s1 = "Bon";
string s2 = "jour";
string s3 = s1 + s2

Une autre solution est de passé par des fonctions de concaténation tel que strcat(...)

Shell
0
janiaut Messages postés 8 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 30 août 2006
29 août 2006 à 10:26
Ok je te mettrai la fonction complète enfin une partie car code très volumineux ce soir car je suis au travail et me rappelle plus la totalité du code.
Merci beaucoup
Qu'est qu'on ferait sans vous?
réponse : RIEN
0
Rejoignez-nous