_gcvt
Converte um valor de ponto flutuante para string, ele armazena em um buffer.Uma versão mais segura desta função está disponível. consulte _gcvt_s.
char *_gcvt(
double value,
int digits,
char *buffer
);
Parâmetros
value
Valor a ser convertido.digits
Número de dígitos significativos que armazenados.buffer
Local de armazenamento para o resultado.
Valor de retorno
_gcvtRetorna um ponteiro para a seqüência de dígitos.
Comentários
O _gcvt função converte um ponto flutuante value a uma seqüência de caracteres (que inclui uma vírgula decimal e um byte de sinal possíveis) e armazena a cadeia de caracteres buffer.O buffer deve ser grande o suficiente para acomodar o valor convertido além de um caractere nulo de terminação, que é acrescentado automaticamente.Se um tamanho de buffer de digits + 1 é usado, a função sobrescreve o final do buffer.Isso ocorre porque a seqüência convertida inclui um ponto decimal e pode conter sinal e expoente.Não há nenhuma provisão para estouro._gcvtas tentativas de produzir digits dígitos no formato decimal.Se não for possível, ele produz digits dígitos no formato exponencial.Zeros à direita podem ser suprimidos na conversão.
A buffer comprimento _CVTBUFSIZE é suficiente para flutuantes qualquer valor de ponto.
Esta função valida seus parâmetros.Se buffer é NULL, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, essa função define errno para EINVAL e retorna NULL.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_gcvt |
<stdlib.h> |
Para obter mais informações de compatibilidade, consulte compatibilidade na introdução.
Exemplo
// 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) );
}