Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

strtod, _strtod_l, wcstod, _wcstod_l

Convertit une chaînes en une valeur de "double-precision".

double strtod(
   const char *nptr,
   char **endptr 
);
double _strtod_l(
   const char *nptr,
   char **endptr,
   _locale_t locale
);
double wcstod(
   const wchar_t *nptr,
   wchar_t **endptr 
);
double wcstod_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   _locale_t locale
);

nptr

Chaîne terminée par Null à convertir.

endptr

Pointeur vers le caractère qui arrête l'analyse.

locale

Paramètres régionaux à utiliser.

strtod retourne la valeur du nombre à virgule flottante, sauf lorsque la représentation provoque un dépassement de capacité, auquel cas la fonction retourne la valeur +/-HUGE_VAL. Le signe de HUGE_VAL correspond au signe de la valeur qui ne peut pas être représentée. strtod retourne 0 si aucune conversion ne peut être exécutée ou un dépassement de capacité se produit.

wcstod retourne les valeurs de façon analogue à strtod. Pour les deux fonctions, errno a la valeur ERANGE en cas de surcapacité ou de sous-capacité et en cas d'appel du gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre.

Consultez _doserrno, errno, _sys_errlist et _sys_nerr pour plus d'informations sur ceci et d'autres codes de retour.

Chaque fonction convertit la chaîne d'entrée nptr en double. La fonction strtod convertit nptr en une valeur double-précision. La fonction strtod arrête de lire la chaîne nptr au premier caractère qu'elle ne peut pas reconnaître comme faisant partie d'un nombre. Il peut s'agir du caractère null de fin. wcstod est une version à caractères larges de strtod; son argument nptr est une chaîne à caractères larges. Ces fonctions se comportent sinon de façon identique.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_tcstod

strtod

strtod

wcstod

_tcstod_l

_strtod_l

_strtod_l

_wcstod_l

Le paramètre de catégorie LC_NUMERIC des paramètres régionaux actuels détermine la reconnaissance des caractères de base dans nptr; pour plus d'informations, consultez setlocale. Les fonctions sans le suffixe _l utilisent les paramètres régionaux locaux ; _strtod_l est identique à _strtod_l sauf qu'elles utilisent à la place les paramètres régionaux qui lui sont transmis. Pour plus d'informations, consultez Paramètres régionaux.

Si endptr n'a pas la valeur NULL, un pointeur vers le caractère qui a arrêté l'analyse est enregistré à l'emplacement désigné par endptr. Si aucune conversion ne peut être effectuée (aucun chiffre valide n'a été trouvé ou une base non valide a été spécifiée), la valeur de nptr est enregistrée à l'emplacement désigné par endptr.

strtod attend nptr pour pointer vers une chaîne au format suivant :

[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]

Un whitespace peut se composer d'espaces et de caractères de tabulations, qui sont ignorés ; un sign est soit plus (+) soit moins () ; et des digits se composent d'un ou plusieurs chiffres décimaux. Si aucun chiffre ne s'affiche avant le caractère de base, au moins un doit apparaître après le caractère de base. Les nombres décimaux peuvent être suivis d'un exposant, qui comprend une lettre préliminaire (d, D, e ou E) et éventuellement un entier signé. Si ni une partie d'exposant ni un caractère de base n'apparaît, il suppose qu'un caractère de base suit le dernier chiffre dans la chaîne. Le premier caractère qui ne correspond pas à ce formulaire arrête l'analyse.

Routine

En-tête requis

strtod , _strtod_l

<stdlib.h>

wcstod , _wcstod_l

<stdlib.h> ou <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

// crt_strtod.c
// This program uses strtod to convert a
// string to a double-precision value; strtol to
// convert a string to long integer values; and strtoul
// to convert a string to unsigned long-integer values.
//

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char   *string, *stopstring;
   double x;
   long   l;
   int    base;
   unsigned long ul;

   string = "3.1415926This stopped it";
   x = strtod( string, &stopstring );
   printf( "string = %s\n", string );
   printf("   strtod = %f\n", x );
   printf("   Stopped scan at: %s\n\n", stopstring );

   string = "-10110134932This stopped it";
   l = strtol( string, &stopstring, 10 );
   printf( "string = %s\n", string );
   printf("   strtol = %ld\n", l );
   printf("   Stopped scan at: %s\n\n", stopstring );

   string = "10110134932";
   printf( "string = %s\n", string );
 
   // Convert string using base 2, 4, and 8:
   for( base = 2; base <= 8; base *= 2 )
   {
      // Convert the string:
      ul = strtoul( string, &stopstring, base );
      printf( "   strtol = %ld (base %d)\n", ul, base );
      printf( "   Stopped scan at: %s\n", stopstring );
   }
}
string = 3.1415926This l'a arrêté
   strtod = 3.141593
   Analyse arrêtée à : Cela l'a arrêté

string = -10110134932This l'a arrêté
   strtol = -2147483648
   Analyse arrêtée à : Cela l'a arrêté

chaîne = 10110134932
   strtol = 45 (base 2)
   Analyse arrêtée à : 34932
   strtol = 4423 (base 4)
   Analyse arrêtée à : 4932
   strtol = 2134108 (base 8)
   Analyse arrêtée à : 932

Ajouts de la communauté

Afficher:
© 2015 Microsoft