Convertir une string en n'importe quoi

Contenu du snippet

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

Source / Exemple :


#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;

A voir également

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.