Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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) );
}