strtof
, _strtof_l
, wcstof
, _wcstof_l
Dizeleri tek duyarlıklı kayan nokta değerine dönüştürür.
Sözdizimi
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
);
Parametreler
strSource
Dönüştürülecek null ile sonlandırılan dize.
endptr
Taramayı durduran karakterin işaretçisi.
locale
Kullanılacak yerel ayar.
Dönüş değeri
strtof
, temsilin taşmalara neden olacağı durumlar dışında kayan nokta numarasının değerini döndürür ve bu durumda işlev +/-HUGE_VALF
döndürür. işareti HUGE_VALF
, temsil edilmeyecek değerin işaretiyle eşleşir. strtof
dönüştürme gerçekleştirilemiyorsa veya bir yetersizlik oluşursa 0 döndürür.
wcstof
ile benzer değerler strtof
döndürür. Her iki işlev için de taşma errno
veya yetersizlik oluşursa olarak ayarlanır ERANGE
ve parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır.
İade kodları hakkında daha fazla bilgi için bkz. errno
, _doserrno
, _sys_errlist
ve _sys_nerr
.
Açıklamalar
Her işlev giriş dizesini strSource
öğesine float
dönüştürür. strtof
işlevi tek duyarlıklı bir değere dönüştürürstrSource
. strtof
dizesini strSource
bir sayının parçası olarak tanıyamayan ilk karakterde okumayı durdurur. Bu karakter, sonlandırıcı null karakter olabilir. wcstof
geniş karakterli strtof
bir sürümüdür; strSource
bağımsız değişkeni geniş karakterli bir dizedir. Aksi takdirde, bu işlevler aynı şekilde davranır.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tcstof |
strtof |
strtof |
wcstof |
_tcstof_l |
_strtof_l |
_strtof_l |
_wcstof_l |
LC_NUMERIC
Geçerli yerel ayarın kategori ayarı içindeki radix karakterinin strSource
tanınmasını belirler; daha fazla bilgi için bkzsetlocale
. , _wsetlocale
. Son eki olmayan _l
işlevler geçerli yerel ayarı kullanır; son ekine sahip olan işlevler, bunun yerine geçirilen yerel ayarı kullanmaları dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.
değilse endptr
NULL
, taramayı durduran karakterin işaretçisi tarafından endptr
işaret edilen konumda depolanır. Dönüştürme gerçekleştirilemiyorsa (geçerli basamak bulunamadıysa veya geçersiz bir taban belirtildiyse), değeri strSource
tarafından endptr
işaret edilen konumda depolanır.
strtof
strSource
aşağıdaki biçimdeki bir dizeye işaret etmesini bekler:
[whitespace
] [sign
] [digits
] [.digits
] [{e
| E
} [sign
] digits
]
bir whitespace
, yoksayılan boşluk ve sekme karakterlerinden oluşabilir; sign
artı (+
) veya eksi (-
) olabilir ve digits
bir veya daha fazla ondalık basamaktır. Radix karakterinden önce hiç basamak görünmüyorsa, radix karakterinden sonra en az bir basamak görünmelidir. Ondalık basamakları, giriş harfi (e
veya E
) ve isteğe bağlı olarak imzalanan bir tamsayıdan oluşan bir üs takip edebilir. Üstel parça veya radix karakteri görüntülenmezse, dizedeki son basamaktan sonra gelen bir radix karakteri varsayılır. Bu forma uymayan ilk karakter taramayı durdurur.
Bu işlevlerin UCRT sürümleri Fortran stili (d
veya D
) üslü harflerin dönüştürülmesi desteklenmez. Bu standart olmayan uzantı CRT'nin önceki sürümleri tarafından destekleniyordu ve kodunuz için hataya neden olan bir değişiklik olabilir.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
strtof , _strtof_l |
C: <stdlib.h> C++: <cstdlib> veya <stdlib.h> |
wcstof , _wcstof_l |
C: <stdlib.h> veya <wchar.h> C++: <cstdlib>, <stdlib.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Veri dönüştürme
Matematik ve kayan nokta desteği
Çok baytlı karakter dizilerinin yorumlanması
Yerel ayar
Sayısal değer işlevlerine dize
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