bonjour,
je voudrais ajouter "= TRUE" a la fin de mon std::string et le mettre dans un CString
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 const std::string var + "TRUE"; //convertion en CString const CString cmd = ...








bonjour,
je voudrais ajouter "= TRUE" a la fin de mon std::string et le mettre dans un CString
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 const std::string var + "TRUE"; //convertion en CString const CString cmd = ...








ceci n'est pas correct mais je sais pas comment faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 const std::string cmd; cmd = nom_rep_TC + " = TRUE"; std::string s(cmd); CString str(s.c_str());
pour la convertion je recupere cmd en CString dans quel variable.?
Code : Sélectionner tout - Visualiser dans une fenêtre à part cmd = nom_rep_TC + " = TRUE";
merci
Pas besoin de passer par l'intermédiaire s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 const std::string cmd; cmd = nom_rep_TC + " = TRUE"; CString str(cmd.c_str());








donc dans "str" j'ai un std::string
ceci ne fonctionne pas
mess erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part cmd = var + " = TRUE";
mercibinary '=' : no operator defined which takes a left-hand operand of type 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is
no acceptable conversion)
Non !!! str est initialisé par un const char* (la méthode c_str() de string retourne un const char*)
var est de quel type?
Edit:
cmd ne doit pas être const puisque tu modifies sa valeur ... d'où l'erreur
ou bien, l'initialiser au moment de la déclaration
Code : Sélectionner tout - Visualiser dans une fenêtre à part const std::string cmd = var + " = TRUE";








Et si je veut ajouter un entier dernier cette chaine?
j'ai essayer ceci mais ca ne fonctionne pas
est ce qu'il faut que je convertisse mon entier en std::string?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int num; cmd = nom_rep_TC + " = " + num;
si oui comment fait ton car je comprend pas trop dans le FAQ
merci
Salut,
Le problème vient du fait que tu déclares cmd comme étant... une chaine constante ( const std::string cmd)
Il est donc logique que tu ne puisse pas modifier cette chaine particulière, étant donné que tu as explicitement indiqué au compilateur que... tu ne voulais pas en permettre la modification
Tu est donc obligé de passer par une chaine différente, qu'il ne faut surtout pas déclarer constante si tu veux y apporter des modifications
Cela peut se faire sous une forme proche de
ou sous une forme proche de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 std::string temp(cmd); // utilisation du constructeur par copie temp+=" = true"; CString str(temp.c_str());
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 std::string temp; // la chaine est vide par défaut temp = cmd + " = true"; CString str(temp.c_str());
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Dans la FAQ tu trouves également comment convertir un entier en chaîne en utilisant ostringstream.
Tu as également la version boost plus simple boost::lexical_cast<T>
Version
Partager