Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1083 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  convertir une std::string en type de base (int, float, etc)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

convertir une std::string en type de base (int, float, etc)

n°820760
fykman
Errare Humanum Est
Posté le 11-08-2004 à 20:46:28  profilanswer
 

Comment on fait, please ?
 
Ca doit etre surement très simple mais j'ai beau chercher sur le web, je ne trouve rien.  
A la base, j'avais plutot l'habitude d'utiliser les string du C (char*) et de convertir avec les fonctions 'atoi' et consort mais a force d'entendre les gens (hum...hum....Taz ?)dire qu'en C++ on doit utiliser les std::string... j'ai fini par ceder !
 
Alors, on fait comment, svp ?

mood
Publicité
Posté le 11-08-2004 à 20:46:28  profilanswer
 

n°820769
Taz
bisounours-codeur
Posté le 11-08-2004 à 20:52:02  profilanswer
 

Code :
  1. #include <sstream>
  2. #include <string>
  3. template<typename T>
  4. inline bool valueOf(const std::string &s, T &obj)
  5. {
  6.   std::istringstream is(s);
  7.   return is >> obj;
  8. }
  9. #include <iostream>
  10. int main()
  11. {
  12.   int i;
  13.   std::cout << valueOf("42", i) << '\n'
  14.     << i << '\n';
  15. }


 
ou pourquoi pas en lançant une exception

n°820776
fykman
Errare Humanum Est
Posté le 11-08-2004 à 20:56:19  profilanswer
 

C'etait tout simple, merci !

n°820782
Taz
bisounours-codeur
Posté le 11-08-2004 à 20:59:26  profilanswer
 

note sur ma version. le typage est fait grâce au deuxième paramètre et la fonction retourne un booléen indiquant le succès de la converstion.
 
si on avait eu T valueOf(const std::string&s), il aurait fallut faire le traitement d'erreur par exception et ça serait utiliser de la sorte « int i = valueOf<int>("42" ) »

n°820784
Taz
bisounours-codeur
Posté le 11-08-2004 à 21:00:19  profilanswer
 

fykman a écrit :

C'etait tout simple, merci !

Moi je vois surtout que c'est sécurisé.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  convertir une std::string en type de base (int, float, etc)

 

Sujets relatifs
Open office Connexion a ma base de donnees chez free.frM'est-il possible de vendre une base access?
accès par caractère d'une stringAppeler la méthode d'une classe par un String
Convertir les formules Excel en VBABase de données générique. Trucs et astuces.
Convertir un Char* en WCHAR* ? [résolu]base de registre
Base de connaissanceExporter une base oracle 8i vers du 9i
Plus de sujets relatifs à : convertir une std::string en type de base (int, float, etc)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR