_gcvt
Převede hodnotu s plovoucí desetinnou čárkou je řetězec, který se uloží do vyrovnávací paměti.Bezpečnější verze této funkce je k dispozici; Viz _gcvt_s.
char *_gcvt(
double value,
int digits,
char *buffer
);
Parametry
value
Hodnota má být převeden.digits
Počet platných číslic, které jsou uloženy.buffer
Umístění úložiště pro výsledek.
Vrácená hodnota
_gcvtVrací ukazatel na řetězec číslic.
Poznámky
_gcvt Funkce převede čárce value na řetězec znaků (která obsahuje desetinnou čárku a možné podepsat byte) a ukládá řetězec v buffer.buffer By mělo být dostatečně velké pro uchování převedené hodnoty plus ukončujícím znakem null je automaticky připojen.Pokud velikost vyrovnávací paměti digits + 1 je použita, funkce přepíše konec vyrovnávací paměti.Je to proto, že převedeného řetězec obsahuje desetinnou čárku a obsahovat znak a exponent informace.Není žádné ustanovení pro přetečení._gcvtpokusy o vytvoření digits číslic v desítkovém formátu.Pokud jej nelze, vytváří digits ve formátu exponenciální číslic.Koncové nuly může být potlačeny v převodu.
A buffer délky _CVTBUFSIZE je dostatečná pro všechny plovoucí hodnotou bodu.
Tato funkce ověřuje jeho parametry.Pokud buffer je NULL, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění pokračovat, tato funkce nastaví errno na EINVAL a vrátí NULL.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_gcvt |
<stdlib.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Příklad
// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main( void )
{
char buffer[_CVTBUFSIZE];
double value = -1234567890.123;
printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
_gcvt( value, 12, buffer ); // C4996
// Note: _gcvt is deprecated; consider using _gcvt_s instead
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value *= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value *= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value *= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
printf( "\n" );
value = -12.34567890123;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value /= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value /= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
value /= 10;
_gcvt( value, 12, buffer ); // C4996
printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}