Sdílet prostřednictvím


_fcvt_s

Převede řetězec číslo s plovoucí desetinnou čárkou.Toto je verze _fcvt s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

errno_t _fcvt_s( 
   char* buffer,
   size_t sizeInBytes,
   double value,
   int count,
   int *dec,
   int *sign 
);
template <size_t size>
errno_t _fcvt_s( 
   char (&buffer)[size],
   double value,
   int count,
   int *dec,
   int *sign 
); // C++ only

Parametry

  • [výstup]buffer
    Dodaná vyrovnávací paměť, která bude uchovávat v důsledku převodu.

  • [v]sizeInBytes
    Velikost vyrovnávací paměti v bajtech.

  • [v]value
    Číslo převést.

  • [v]count
    Počet číslic za desetinnou čárkou.

  • [výstup]dec
    Ukazatel na uložené pozice desetinné čárky.

  • [výstup]sign
    Ukazatel myši na indikátor uložené přihlašovací.

Vrácená hodnota

Nula, pokud je úspěšná.Vrácená hodnota je kód chyby, pokud nedošlo k selhání.Kódy chyb jsou definovány v Errno.h.Seznam těchto chyb naleznete v Kód chyby, _doserrno, _sys_errlist a _sys_nerr.

Z neplatný parametr uvedené v následující tabulce této funkce vyvolá obsluhu neplatný parametr popsaným v Ověření parametrů.Pokud je povoleno spuštění pokračovat, tato funkce nastaví errno na EINVAL a vrátí EINVAL.

Chybové podmínky

buffer

sizeInBytes

hodnota

počet

DEC

znak

Vrátit

Hodnota vbuffer

NULL

žádné

žádné

žádné

žádné

žádné

EINVAL

Nebude změněn.

Není NULL (odkazuje na platný paměti)

< = 0

žádné

žádné

žádné

žádné

EINVAL

Nebude změněn.

žádné

žádné

žádné

žádné

NULL

žádné

EINVAL

Nebude změněn.

žádné

žádné

žádné

žádné

žádné

NULL

EINVAL

Nebude změněn.

Problémy se zabezpečením

_fcvt_sPokud může generovat chybu narušení přístupu buffer neodkazuje na platný paměti a není NULL.

Poznámky

_fcvt_s Funkce převede na řetězec znaků zakončený znakem null číslo s plovoucí desetinnou čárkou.value Je parametr 8bajtové číslo převést._fcvt_sukládá se value jako řetězec a přidá znak null (\0).count Parametr určuje počet číslic za desetinnou čárkou uloženy.Přebytek číslice se zaokrouhlí na count místa.Pokud existují méně než count platných číslic, řetězec je doplněno nulami.

V řetězci jsou uloženy pouze číslice.Poloha desetinné čárky a znaménko value lze získat z dec a sign po volání.dec Parametr odkazuje na celočíselnou hodnotu; celočíselná hodnota udává pozici desetinné čárky, s ohledem na začátku řetězce.Nula nebo záporné celé číslo označuje, že desetinnou leží nalevo od první číslice.Parametr sign odkazuje na celé číslo označující znaménko value.Celé číslo, které je nastavena na 0, pokud value pozitivní a je nastavena na nenulovou číslo Pokud value je záporná.

Vyrovnávací paměť délky _CVTBUFSIZE je dostatečná pro všechny plovoucí hodnotou bodu.

Rozdíl mezi _ecvt_s a _fcvt_s je ve výkladu count parametr._ecvt_sinterpretuje count jako celkový počet číslic v řetězci výstup a _fcvt_s interpretuje count jako počet číslic za desetinnou čárkou.

V jazyce C++ použití této funkce je zjednodušeno díky šablony přetížení; přetížení lze odvodit vyrovnávací paměti automaticky, není tedy třeba zadat argument velikost.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Ladicí verze této funkce nejprve zaplní vyrovnávací paměti s 0xFD.Toto chování lze zakázat pomocí _CrtSetDebugFillThreshold.

Požadavky

Function

Požadované záhlaví

Volitelné záhlaví

_fcvt_s

<stdlib.h>

<errno.h>

Další informace o kompatibilitě v tématu Kompatibilita v úvodu.

Knihovny: všech verzí Funkce knihovny CRT.

Příklad

// fcvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main()
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _fcvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_fcvt_s failed with error code %d\n", err);
     exit(1);
  }

  printf("Converted value: %s\n", buf);  
  
}
  

Ekvivalent v rozhraní .NET Framework

ToString

Viz také

Referenční dokumentace

Převod dat

Podpora s plovoucí desetinnou čárkou

atof, _atof_l, _wtof, _wtof_l

_ecvt_s

_gcvt_s

_fcvt