Aracılığıyla paylaş


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_VALFdö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 strtofdö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_errlistve _sys_nerr.

Açıklamalar

Her işlev giriş dizesini strSource öğesine floatdö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 strtofbir 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 strSourcetanı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 endptrNULL, taramayı durduran karakterin işaretçisi tarafından endptriş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 endptrişaret edilen konumda depolanır.

strtofstrSource 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