Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONVERTIR UNE STRING EN N'IMPORTE QUOI


Information sur la source

Catégorie :Chaîne de caractères Classé sous : string, template, convertir Niveau : Débutant Date de création : 17/10/2006 Date de mise à jour : 17/10/2006 17:35:25 Vu : 7 090

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Ce code simple, sans prétention permet de transformer une string en n'importe quel autre type.
 

Source

  • #include <iostream>
  • #include <sstream>
  • template < class T >
  • struct check_string
  • {
  • static void from_string( const std::string & src, T & dest )
  • {
  • // créer un flux à partir de la chaîne donnée
  • std::istringstream iss( src );
  • // Conversion vers Dest
  • iss >> dest;
  • }
  • };
  • template < >
  • struct check_string < std::string >
  • {
  • static void from_string( const std::string & src, std::string & dest )
  • {
  • dest = src;
  • }
  • };
  • template < class T >
  • void from_string( const std::string & src, T & dest )
  • {
  • check_string<T>::from_string( src, dest );
  • }
  • /*********************************************/
  • //exemple :
  • string s1("12");
  • string s2("14.6");
  • string s3("chaine de caractère");
  • int a;
  • float b;
  • string s;
  • // Convertit le 1er argument dans le type du 2eme
  • from_string(s1,a);
  • from_string(s2,b);
  • from_string(s3,s);
  • std::cout << a << std::endl;
  • std::cout << b << std::endl;
  • std::cout << s << std::endl;
#include <iostream>
#include <sstream>

  template < class T >
  struct check_string
  {
    static void from_string( const std::string & src, T & dest )
    {
      // créer un flux à partir de la chaîne donnée
      std::istringstream iss( src );
      
      // Conversion vers Dest
      iss >> dest;
    }
    
  }; 
  
  template < >
  struct check_string < std::string >
  {
    static void from_string( const std::string & src, std::string & dest )
    {
      dest = src;
    }
  }; 

  
  template < class T >
  void from_string( const std::string & src, T & dest )
  {
    check_string<T>::from_string( src, dest );
  }


/*********************************************/
//exemple : 
string s1("12");
string s2("14.6");
string s3("chaine de caractère");

int a;
float b;
string s;

// Convertit le 1er argument dans le type du 2eme 
from_string(s1,a);
from_string(s2,b);
from_string(s3,s);

std::cout << a << std::endl;
std::cout << b << std::endl;
std::cout << s << std::endl;

Historique

17 octobre 2006 17:35:26 :
FIX : bout de code perso inutile enlevé

Commentaires et avis

signaler à un administrateur
Commentaire de nightlord666 le 17/10/2006 20:07:36

Je trouve ça totalement inutile... Mon avis est qu'on aurait pu faire ça directement avec std::istringstream, pas besoin d'un classe suplémentaire pour ça...

signaler à un administrateur
Commentaire de turnerom le 17/10/2006 21:20:35

Si tu veux mon avis, c'est loin d'etre inutile.
Je l'utilise avec une structure perso et une std::map<string,string>.
Ma structure contient différents champs avec différents types.
Comme ca, je peux remplir ma structure avec la map, sans avoir à me soucier du type destination.

De plus, je sais pas ou tu as vu une classe dans ce que j'ai posté !!!

signaler à un administrateur
Commentaire de nightlord666 le 17/10/2006 22:39:04

Perso pour moi une struct avec des fonctions, ça s'appelle une classe... D'ailleurs je ne comprends pas pourquoi les compilateurs acceptent les fonctions dans les structures...

signaler à un administrateur
Commentaire de turnerom le 17/10/2006 22:51:36

Une class = une struct, la SEULE!! différence c'est qu'une struct a ses membres public par défaut et une class a ses membres privés par défaut !!!

signaler à un administrateur
Commentaire de Maegis le 23/10/2006 12:49:33

Oula ! Et les constructeurs/destructeurs/mécanisme d'héritage ... c'est quoi ?
Il n'y a pas qu'une SEULE difference ! ^^

signaler à un administrateur
Commentaire de turnerom le 23/10/2006 14:07:24

Debat deja effectué maintes et maintes fois.
Tu peux très bien faire un constructeur/destructeur et hériter d'une structure comme d'une classe

signaler à un administrateur
Commentaire de Mr.X le 03/11/2006 20:18:34

euh oui mais une structure n'est pas fait pour sa. Même si c'est possible de faire des constructeur/destructeur avec une struct si ma mémoire est bonne c'est loin d'être évident...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

convertir LPCTSTR en string [ par sampq ] Comment convertir correctement un LPCTSTR en string ???merci convertir un string en LPCTSTR [ par sampq ] Comment convertir un type string en un type LPCTSTR correctement ???merci convertir un float en string [ par hobbes ] Bonjour,Comment peut on convertire un float en string en c ????Merci,Hobbes convertir un string en char* [ par benahpets ] bonjour tt le monde je débute en C++ et j'aimerai savoir comment faire pour convertir un string en char* (et si cela est possible). merci d'avancestép Convertir String* en int avec Visuall.net [ par victorlanselle ] Bon je suis un gros boulet mas impossible de convertir un String* en int !!!Je suis sur Visual.net.J'ai test&#233; la fonction atoi mais j'y arrive se Convertir un entier en String [ par maxinfos ] Bonjour,je voudrais savoir s'il &#233;tait possible d'obtenir un code me permettant de convertir un entier (int) en String, ce afin de pouvoir nommer Comment convertir un String en Int en visual C++ SVP [ par mikacontact ] Notre probleme comme il est dit dans le sujet, c'est de convertir un string en int.Merci d'avance convertir un String* en char [ par mimyne ] Bonjour a tous malgrès toute les fonctions que g essayé je n'arrive pas a convertir un string* en char s'il y a qqun qui pourrait me renseigner je su convertir un String* en char [ par mimyne ] Bonjour a tous malgrès toute les fonctions que g essayé je n'arrive pas a convertir un string* en char s'il y a qqun qui pourrait me renseigner je su Convertir une char en string [ par juki_webmaster ] Bonjour,Je vient de faire pas mal de progrés en cpp, et je suis arriver à un probléme de variable.Je declare, et j'utilise une variable de type char :


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.