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