Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2315 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?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
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-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)