nom de fichier variable? ofstream fich(var,ios::out),synthax macro?who - C++ - Programmation
Marsh Posté le 28-10-2002 à 14:28:56
il faut metre FICH.c_str() je pense. 
| Code : 
 | 
Marsh Posté le 28-10-2002 à 18:21:52
tout simplement? 
tu sais on me dit souvent que j'ai pas l'esprit objet.je peux dir qu'ils ont raison. 
merci bcp.
Marsh Posté le 28-10-2002 à 18:40:11
tu sais j'ai essayé , mais ça ne va pas. 
quelqu'un pourrait m'aider?? 
merci
Marsh Posté le 29-10-2002 à 01:19:59
Rappel: Le préprocesseur fait du traitement de texte sur le source avant compilation, et ne comprend rien au langage C ou C++.
| Code : 
 | 
## sert à coller deux mots pour en former un troisième. Dans ce cas-ci, ce n'était pas possible, et cela aurait dû être une erreur. 
 
# sert à transfomer en chaîne littérale:
| Code : 
 | 
Ça marche pour des chaînes littérales, sans plus. 
 
Correction simple:
| Code : 
 | 
Ça marche, car "nom" se trouve être ici une std::string, qui surcharge l'opérateur + pour concaténer et générer une string temporaire. 
 
Je ne saurais trop te conseiller de n'utiliser l'archaïque pré-processeur qu'en dernier recours:
| Code : 
 | 
 
Les amateurs de performance préfèrent comme ça:
| Code : 
 | 
 
 
Ah oui... le "reinterpret_cast" est un truc sauvage, qui ordonne au compilateur d'obéir sans discuter. 
C'est dangereux, car les messages du compilateur sont importants, il sait mieux que nous ce qui se passe (mal). 
À n'utiliser que rarement, si l'on sait ce que l'on fait.
Marsh Posté le 29-10-2002 à 09:24:18
merci Musaran. 
tu sais si je t'avais comme prof , je ne serais pas ici. 
merci à tous.
Marsh Posté le 29-10-2002 à 11:43:48
| Musaran a écrit a écrit  : Rappel: Le préprocesseur fait du traitement de texte sur le source avant compilation, et ne comprend rien au langage C ou C++. 
 ## sert à coller deux mots pour en former un troisième. Dans ce cas-ci, ce n'était pas possible, et cela aurait dû être une erreur.  
 Ça marche pour des chaînes littérales, sans plus.  
 Ça marche, car "nom" se trouve être ici une std::string, qui surcharge l'opérateur + pour concaténer et générer une string temporaire.  
   
   | 
 
 
 
tu sais, j'ai essayé ce que tu m'as conseillé mais il me rend l'erreur suivante. 
 
 error C2664: '__thiscall std::basic_ofstream<char,struct std::char_traits<char> >::std::basic_ofstream<char,struct std::char_traits<char> >(const char *,int)' : cannot convert parameter 1 from 'class std 
::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *' 
 
merci de me dir ce que c'est
Marsh Posté le 30-10-2002 à 00:50:16
ca veut justement dire que lorsque tu veux ouvrir ton fichier avec  ofstream fichier(...), cette fonction prend en argument un const char* et non un string que tu lui propose. 
Il faut donc faire ton_string.c_str() 
Marsh Posté le 30-10-2002 à 01:05:41
Je l'oublie toujours. 
Désolé   
 
Marsh Posté le 28-10-2002 à 14:23:43
je voudrai creer un objet de flux de la classe ofstream, mais pour plusieurs fichiers, donc j'ai opté pour l'ecriture svt:
vous allez me dire que c'est logique
FICH est const hors qu'il doit etre un string ou un char*.
:
et portant ça ne va pas.
aidez moi s'il vous plait.
merci bcp.