Insérer la valeur d'une variable dans une chaine de caractère [Résolu]

Zakata 59 Messages postés lundi 21 août 2006Date d'inscription 17 juillet 2009 Dernière intervention - 5 juil. 2007 à 23:55 - Dernière réponse : Zakata 59 Messages postés lundi 21 août 2006Date d'inscription 17 juillet 2009 Dernière intervention
- 6 juil. 2007 à 23:00
Bonjour,

(Je suis débutant en C++)
Est il posible d'insérer la valeur d'une variable (int, bool, float...) dans une chaine de caractère (string) ?
du genre :

#include #include <string>
using namespace std
int main(void){    int i=648;    string MaChaine;    MaChaine+="Du text";    MaChaine+=i;}
Merci
Damien
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_laurent1024 987 Messages postés mardi 31 mai 2005Date d'inscription 30 août 2012 Dernière intervention - 6 juil. 2007 à 08:52
3
Merci


<code class="cpp_keyword2">#

include



<sstream>





int

main
()
{

//
créer
un
flux
de
sortie

std::
ostringstream oss;
//
écrire
un
nombre
dans
le
flux

oss
<
<
10
;
//
récupérer
une
chaîne
de
caractères

std::
string result
=
oss.
str
();
}
</code>

Merci cs_laurent1024 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_laurent1024
Yunchi 100 Messages postés lundi 30 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 6 juil. 2007 à 09:06
0
Merci
MaChaine = MaChaine + i;
Commenter la réponse de Yunchi
Zakata 59 Messages postés lundi 21 août 2006Date d'inscription 17 juillet 2009 Dernière intervention - 6 juil. 2007 à 12:46
0
Merci
Ok merci pour vos réponses

Laurent1024->Je ne connais pas encore les flux
.
<code class="cpp_keyword2">
<sstream> est il inclu dans  ?
</code>

Yunchi-> Je ne comprend pas chez moi ça ne marche pas, 
si je fais


MaChaine = "ABC  " + i;
cout<< MaChaine;

il me sort : 'ABC  ?' quelque soit la valeur de i (pour les valeurs que j'ai essayé)

Bonnejournée
Commenter la réponse de Zakata
Yunchi 100 Messages postés lundi 30 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 6 juil. 2007 à 18:26
0
Merci
ah si i est un string je sais que ca marche comme ca mais pour un int alors je sais pas en C++


essaye : MaChaine.insert(MaChaine.length , i);
ou sinon MaChaine += i;


sinon le truc du flux a l'air de marcher :)

ostringstream oss;

string chaine = "MaChaine";
int i = !;

oss << MaChaine << i;
MaChaine = oss.str();

cout << MaChaine;
Commenter la réponse de Yunchi
Zakata 59 Messages postés lundi 21 août 2006Date d'inscription 17 juillet 2009 Dernière intervention - 6 juil. 2007 à 20:41
0
Merci
Ok merci je vais tester la technique du flux
Commenter la réponse de Zakata
Zakata 59 Messages postés lundi 21 août 2006Date d'inscription 17 juillet 2009 Dernière intervention - 6 juil. 2007 à 22:30
0
Merci
Bon ca marche nickel il faut juste savoir que oss.clear() n'efface pas la chaine de charactère mais elle remet à zéro les bits d'erreur du flux.

sinon je vais encore abuser mais la fonction find() de la classe string me renvoie 4294967295 lorsqu'elle ne trouve pas le charatere rechercher. C'est quoi 4294967295 c'est le nombre max de charactères?
Commenter la réponse de Zakata
cs_laurent1024 987 Messages postés mardi 31 mai 2005Date d'inscription 30 août 2012 Dernière intervention - 6 juil. 2007 à 22:47
0
Merci
http://www.cplusplus.com/reference/string/string/find.html

Tu trouvera ce que tu veux :)
<tt><tt>size_t find ( const string& str, size_t pos = 0 ) const;
size_t find ( const char* s, size_t pos, size_t n ) const;
size_t find ( const char* s, size_t pos = 0 ) const;
size_t find ( char c, size_t pos = 0 ) const;

</tt></tt>* str : npos is returned.<tt><tt>// different member versions of find in the same order as above:
found =str.find(str2);
if (found!=string::npos)
cout << "first 'needle' found at: " << int(found) << endl;

</tt></tt>
Commenter la réponse de cs_laurent1024
Zakata 59 Messages postés lundi 21 août 2006Date d'inscription 17 juillet 2009 Dernière intervention - 6 juil. 2007 à 23:00
0
Merci
Nickel merci encore

Damien
Commenter la réponse de Zakata

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.