Sdílet prostřednictvím


_ecvt_s

Převede double čísla na řetězec.Toto je verze _ecvt s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

errno_t _ecvt_s( 
   char * _Buffer,
   size_t _SizeInBytes,
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
);
template <size_t size>
errno_t _ecvt_s( 
   char (&_Buffer)[size],
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
); // C++ only

Parametry

  • [výstup]_Buffer
    Ukazatel na řetězec číslic, výsledek převodu vyplněna.

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

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

  • [v]_Count
    Počet číslic, které jsou uloženy.

  • [výstup]_Dec
    Uložené pozice desetinné čárky.

  • [výstup]_Sign
    Znak převedený číslo.

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.Další informace naleznete v tématu 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

_Value

_Count

_Dec

_Sign

Vrácená hodnota

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

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

Poznámky

_ecvt_s Funkce převede na řetězec znaků číslo s plovoucí desetinnou čárkou._Value Je parametr 8bajtové číslo převést.Tato funkce ukládá až count číslic _Value jako řetězec a přidá znak null (\0).Pokud počet číslic v _Value přesahuje _Count, nejnižší číslice se zaokrouhlí.Pokud existují méně než count číslice řetězce 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 udávající polohu desetinné čárky, s ohledem na začátku řetězce.Hodnota 0 nebo záporné celé číslo označuje, že desetinnou leží nalevo od první číslice._Sign Parametr odkazuje na celé číslo označující znaménko čísla převedené.Pokud celočíselnou hodnotu 0, je číslo kladné.Jinak je záporné číslo.

Vyrovnávací paměť délky _CVTBUFSIZE je dostačující pro libovolnou hodnotu s plovoucí desetinnou čárkou.

Rozdíl mezi _ecvt_s a _fcvt_s je ve výkladu _Count parametr._ecvt_sinterpretuje _Count jako celkový počet číslic v výstupní řetězec, že _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í

_ecvt_s

<stdlib.h>

<errno.h>

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

Příklad

// ecvt_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 = _ecvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_ecvt_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

_fcvt_s

_gcvt_s