STRTOD |
Chaîne à double |
---|---|
Langage C++ | cstdlib (stdlib.h) |
Syntaxe
double strtod(const char *str1,char **fin) |
Paramètres
Nom | Description |
---|---|
str1 | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ contenant le nombre. |
fin | Ce paramètre retourne un pointeur à la fin du nombre dans la chaîne de caractères ASCIZ. |
Description
Cette fonction permet de convertir la chaîne de caractères en nombre de type «double».
Remarques
- La fonction strtod() convertit la représentation sous le format de chaîne d'un nombre entreposé dans la chaîne de caractères pointée par str1 en un type de données double et renvoie le résultat.
- La fonction strtod() fonctionne comme suit. Tout d'abord, tout espace blanc dans la chaîne de caractères pointée par str1 est supprimé. Ensuite, chaque caractère comprenant le numéro est lu. Tout caractère ne pouvant pas faire partie d'un nombre à virgule flottante entraînera l'arrêt de ce processus. Cette situation inclut les espaces blancs, la ponctuation (autres que les points) et les caractères autres que «E» ou «e». Enfin, le paramètre fin est défini pour pointer vers le reste, le cas échéant, de la chaîne de caractères d'origine. Cela signifie que si strtod() est appelé avec "100.00 Gladir", la valeur 100.00 sera renvoyée et le paramètre fin pointera vers l'espace précédant "Gladir".
- Si aucune conversion n'a lieu, zéro est renvoyé. En cas de dépassement de valeur, la fonction strtod() renvoie soit HUGE_VAL soit -HUGE_VAL (indiquant un dépassement positif ou négatif), et la variable globale errno est définie sur ERANGE, indiquant une erreur d'intervalle.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
- #include <iostream>
- #include <cstdlib>
-
- int main()
- {
- char *s, *sr;
- s = "0";
- std::cout << "0 = " << strtod(s,&sr) << std::endl;
- s = "1";
- std::cout << "1 = " << strtod(s,&sr) << std::endl;
- s = "123";
- std::cout << "123 = " << strtod(s,&sr) << std::endl;
- s = "-123";
- std::cout << "-123 = " << strtod(s,&sr) << std::endl;
- s = "-123E";
- std::cout << "-123E = " << strtod(s,&sr) << std::endl;
- s = "-123G";
- std::cout << "-123G = " << strtod(s,&sr) << std::endl;
- s = "G";
- std::cout << "G = " << strtod(s,&sr) << std::endl;
- s = "123.45";
- std::cout << "123.45 = " << strtod(s,&sr) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
0 = 01 = 1
123 = 123
-123 = -123
-123E = -123
-123G = -123
G = 0
123.45 = 123.45
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - atof
Langage de programmation - C - Référence procédures et fonctions - strtod
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 735.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 267.
Dernière mise à jour : Lundi, le 3 août 2015