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.