Y a t il une fonction equivalente à "atoi"
Transformer un numerique en chaine de caractere ?
Y a t il une fonction equivalente à "atoi"
Transformer un numerique en chaine de caractere ?
Salut,
Je ne crois pas qu'il y ait une telle fonction toute prête; tu peux te référer à cet article de la faq C++ pour voir leur méthode et l'adapter à tes besoins.
Salut,
Le plus facile, c'est, tout simplement l'utilisation de std::*stringstream et de std::string...(istringstream pour la convertion chaine-->n'importe quoi, ostringstream pour n'importe quoi-->chaine)
Une fois que tu as ta std::string, si, vraiment, tu as besoin d'un char*, tu pourras toujours l'avoir avec la fonction membre c_str() de la classe string...
Tu trouveras des exemples pour les convertion ==>sur cette page du site<==.
Nota:
- Il est vrai qu'on le répète à longueur de journée sur ce forum, mais, honnêtement, en C++, il est beaucoup plus simple d'utiliser la classe std::string pour la gestion de chaines de caractères que de commencer avec des chaines "C style" (tableau de caractères terminés par '\0')
- les classes string et *stringstream font toutes les deux partie de l'espace de nommage std... les fichiers à inclure pour en profiter sont respectivement <string> et <sstream>
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
Ok merci koala01 et IrmatDen, vous m'avez envoyer vers le même type de tutorial, j ai suivi celui de Aurélien Regat-Barrel sur developpez.net.
En suivant les conseils de koala j'ai fais ma propre function de log qui prend entre une string que je convertie ensuite en char *
Mais ma question est: Pourquoi vouloir absolument le convertir en char*Envoyé par magnus2005
Pour une fonction log, utilise les std::ofstream pour l'écriture dans un fichier, et ca fonctionne tres bien avec des std::string et meme avec n'importe quel type de base (entier, reel, ...)
Un code du genre de
fonctionnera très bien (nécessite l'inclusion du fichier <fstream>)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 /* fonction log @in éventuellement le nom du fichier à utiliser les infos à écrire le prototype peut donc varier énormément, selon les infos à logguer ;) */ void log(std::string fichier,std::string& chaine, int entier) { //le seul char* qu'il nous faille, c'est pour le nom du fichier //(je n'ai personnellement jamais compris pourquoi, dans ce cas précis, // la stl n'avait pas envisagé l'utilisation d'une string :P) std::ofstream ofs(fichier.c_str(),std::ios_base::app); ofs<<"entier: "<<entier<<" chaine: "<<chaine<<std::endl; }
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
En fait je dois utiliser une fonction qui prend LPSTR en parametre
et quand je veux passer une "string" le compilateur
me dit "impossible de convertir". Si j ai bien lu les header de LPSTR est un type de char*.
Mais j'en conviens que c 'est pas génial.
Je suis en train de passez un projet VC++6 qui date de 1997 et j'essaie d updater morceau par morceau.
La je l ai passe sous VISUAL 2005 et j avance pas à pas.
J'ai 2 soucis principaux :
- le code qui assez souvent obsolete (Ex : je suis en train de passer les winsock.h vers winsock2.h)
- Et je connais pas la logique de conception du projet.
Partager