Convertir chaîne de caractères en entier

Convertir chaîne de caractères en entier - C++ - Programmation

Marsh Posté le 03-03-2003 à 18:41:35    

[En C++]
Question classique, dont je me rappelle jamais :
J'ai une chaîne de caractère :  
 
char texte[32];
 
qui vaut par exemple "75"
 
Et je voudrais mettre 75 dans l'int toto.
 
Comment faire ?
 
Merci.

Reply

Marsh Posté le 03-03-2003 à 18:41:35   

Reply

Marsh Posté le 03-03-2003 à 20:12:31    

La solution purement C++ est bien lourde je trouve:
 

Code :
  1. std::istringstream stream(texte);
  2. int nb;
  3. stream >> nb;
  4. if (stream.fail()==true)
  5. {
  6. // si c'était pas un nombre
  7. }


 
Sinon, il y a toujours la fonction atoi...

Reply

Marsh Posté le 03-03-2003 à 20:37:55    

merci kenshiro
 
on peut aussi tout simplement faire
 

Code :
  1. if(! (stream >> nb))
  2. { // y a eu un problème
  3. }

Reply

Marsh Posté le 04-03-2003 à 09:10:37    

Citation :


$ man atoi
ATOI(3)                   Manuel du programmeur Linux                  ATOI(3)
 
NOM
       atoi  Conversion d'une chaîne en entier (int).
 
SYNOPSIS
       #include <stdlib.h>
 
       int atoi (const char *nptr);
 
DESCRIPTION
       La  fonction atoi() convertit le début de la chaîne pointée par nptr en entier de type int.  Le résultat est identique à un appel
 
              strtol(nptr, (char **)NULL, 10);
 
       à la différence que atoi() ne détecte pas d'erreur.
 
VALEUR RENVOYé
       Le résultat de la conversion.
 
CONFORMITé       SVID 3, POSIX, BSD 4.3, ISO 9899
 
VOIR AUSSI
       atof(3), atol(3), strtod(3), strtol(3), strtoul(3)
 
TRADUCTION
       Christophe Blaess, 1997.
 
GNU                             22 Octobre 1996                        ATOI(3)

Reply

Marsh Posté le 04-03-2003 à 09:13:51    

Merci bien western, atoi() et atof() sont bien pratiques :)

Reply

Marsh Posté le 04-03-2003 à 13:25:14    

ce sont surtout des fonctions C de merde qui ne permettent aucune détection d'erreur. a proscrire complètement.

Reply

Marsh Posté le 04-03-2003 à 14:00:46    

++Taz a écrit :

ce sont surtout des fonctions C de merde qui ne permettent aucune détection d'erreur. a proscrire complètement.


quel poète!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed