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

  FORUM HardWare.fr
  Programmation
  C++

  Stringstreams & conversions strings -> types numériques

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Stringstreams & conversions strings -> types numériques

n°844898
masklinn
í dag viðrar vel til loftárása
Posté le 08-09-2004 à 11:34:02  profilanswer
 

Bon il y a qq temps, je cherchais comment remplacer les strto* et wcsto* par quelque chose de plus propre.
Après demande a Taz, celui ci m'a parlé des stringstreams...  
A ce moment la j'ai absolument pas compris en quoi ca m'aidait, maintenant cette partie là c'est bon, mais j'ai encore un petit problème:
 

Code :
  1. stringstream foo;
  2. string bar = "10";
  3. unsigned short value;
  4. foo << bar;
  5. foo >> value;
  6. cout << "Taiste " << value << endl;


Ce code fonctionne très bien si on a un décimal dans bar, mais si on met une valeur en octal (010), il la considère comme du décimal (10 et non 8), et si on met une valeur en hexa (0xE), il ne parse que le 0 (au lieu de sortir 14).
 
Problème 1: Me faut il obligatoirement passer par les modificateur hex et oct ou y a-t-il un moyen de le faire implicitement?
 
Problème 2: Si je remplace unsigned short par unsigned char, il colle (assez logiquement) le code ascii du 1er caractère dans l'uchar au lieu d'y mettre sa valeur. Dois-je nécessairement passer par l'étape unsigned short pour placer la valeur numérique présente dans le string et non le code ascii du 1er caractère dans mon uchar?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le 08-09-2004 à 11:34:02  profilanswer
 

n°844937
Lam's
Profil: bas.
Posté le 08-09-2004 à 12:41:00  profilanswer
 

Pour le problème 1:
 
Je crois que ce code (hex, donc) :  

Code :
  1. std::istringstream iss("0x13" );
  2.    unsigned int x = 0; 
  3.    iss >> std::hex >> x;


 
Doit pouvoir être remplacé par:

Code :
  1. std::istringstream iss("0x52 034" );
  2.    iss.unsetf(std::ios::basefield);
  3.    unsigned int x = 0;
  4.    iss >> x;


 


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

  Stringstreams & conversions strings -> types numériques

 

Sujets relatifs
Types Abstraits de Données(defs des operations de base pour les listes[Java] Fusionner des types "Enumeration"
[Java 1.5] Types generiques[C] problème de types de données
[Java 1.5] Probleme avec les types generiquescomparaison de strings
recherche de stringsTypes d'erreurs lors d'un accès à un fichier avec Glib
Les dessous des Strings.Plusieurs types dans un vector
Plus de sujets relatifs à : Stringstreams & conversions strings -> types numériques


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