strtof
, , _strtof_l
wcstof
, ,_wcstof_l
Convertit les chaînes en valeur à virgule flottante simple précision.
Syntaxe
float strtof(
const char *strSource,
char **endptr
);
float _strtof_l(
const char *strSource,
char **endptr,
_locale_t locale
);
float wcstof(
const wchar_t *strSource,
wchar_t **endptr
);
float wcstof_l(
const wchar_t *strSource,
wchar_t **endptr,
_locale_t locale
);
Paramètres
strSource
Chaîne se terminant par un caractère Null à convertir.
endptr
Pointeur désignant le caractère qui arrête l’analyse.
locale
Paramètres régionaux à utiliser.
Valeur retournée
strtof
retourne la valeur du nombre à virgule flottante, sauf lorsque la représentation provoque un dépassement de capacité, auquel cas la fonction retourne +/-HUGE_VALF
. Le signe HUGE_VALF
correspond au signe de la valeur qui ne peut pas être représentée. strtof
retourne 0 si aucune conversion ne peut être effectuée ou en cas de dépassement de capacité négatif.
wcstof
retourne des valeurs de façon analogue à strtof
. Pour les deux fonctions, errno
la valeur est définie ERANGE
si le dépassement de capacité ou le sous-flux se produit et que le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres.
Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist
_doserrno
et _sys_nerr
.errno
Notes
Chaque fonction convertit la chaîne d’entrée strSource
en float
. La fonction strtof
convertit strSource
en valeur simple précision. strtof
arrête la lecture de la chaîne strSource
au premier caractère qu’elle ne peut pas reconnaître dans le cadre d’un nombre. Ce caractère peut être le caractère null de fin. wcstof
est une version à caractères larges de strtof
; son argument strSource
est une chaîne de caractères larges. Sinon, ces fonctions se comportent de façon identique.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcstof |
strtof |
strtof |
wcstof |
_tcstof_l |
_strtof_l |
_strtof_l |
_wcstof_l |
Le LC_NUMERIC
paramètre de catégorie des paramètres régionaux actuels détermine la reconnaissance du caractère radix dans strSource
; pour plus d’informations, voir setlocale
, _wsetlocale
. Les fonctions sans suffixe _l
utilisent les paramètres régionaux actifs ; celles qui ont le suffixe sont identiques, sauf qu’elles utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.
Si endptr
ce n’est pas NULL
le cas, un pointeur vers le caractère qui a arrêté l’analyse est stocké à l’emplacement vers lequel pointe endptr
. Si aucune conversion ne peut être effectuée (aucun chiffre valide n’a été trouvé ou la base spécifiée n’était pas valide), la valeur de strSource
est stockée à l’emplacement désigné par endptr
.
strtof
s’attend à ce que strSource
pointe vers une chaîne au format suivant :
[whitespace
] [sign
] [digits
][.digits
] [{e
| E
} [sign
] ] digits
Un whitespace
peut se composer d’espaces et de tabulations, qui sont ignorés ; sign
est un signe plus (+
) ou moins (-
) ; et digits
représente un ou plusieurs chiffres décimaux. Si aucun chiffre n’apparaît avant le caractère de base, il doit en figurer au moins un après le caractère de base. Les chiffres décimaux peuvent être suivis d’un exposant, qui se compose d’une lettre d’introduction (e
ou E
) et éventuellement d’un entier signé. Si aucune partie exposante ou caractère radix n’apparaît, un caractère radix est supposé suivre le dernier chiffre de la chaîne. Le premier caractère qui ne correspond pas à ce formulaire arrête l’analyse.
Les versions UCRT de ces fonctions ne prennent pas en charge la conversion de lettres exposantes (d
ou D
) de style Fortran. Cette extension non standard était prise en charge par les versions antérieures de la bibliothèque CRT et peut être une modification avec rupture pour votre code.
Spécifications
Routine | En-tête requis |
---|---|
strtof , _strtof_l |
C : <stdlib.h> C++ : <cstdlib> ou <stdlib.h> |
wcstof , _wcstof_l |
C : <stdlib.h> ou <wchar.h> C++ : <cstdlib, <stdlib.h>> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_strtof.c
// This program uses strtof to convert a
// string to a single-precision value.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char *string;
char *stopstring;
float x;
string = "3.14159This stopped it";
x = strtof(string, &stopstring);
printf("string = %s\n", string);
printf(" strtof = %f\n", x);
printf(" Stopped scan at: %s\n\n", stopstring);
}
string = 3.14159This stopped it
strtof = 3.141590
Stopped scan at: This stopped it
Voir aussi
Conversion de données
Prise en charge des fonctions mathématiques et à virgule flottante
Interprétation des séquences de caractères multioctets
Paramètres régionaux
Chaîne à fonctions de valeur numérique
strtod
, , _strtod_l
wcstod
, ,_wcstod_l
strtol
, , wcstol
_strtol_l
, ,_wcstol_l
strtoul
, , _strtoul_l
wcstoul
, ,_wcstoul_l
atof
, , _atof_l
_wtof
, ,_wtof_l
localeconv
_create_locale
, _wcreate_locale
_free_locale