_gcvt_s
y
div
eof
not
or
xor
TOC
Collapse the table of content
Expand the table of content
Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

_gcvt_s

 

Convierte un valor de punto flotante a una cadena.Ésta es una versión de _gcvt con mejoras de seguridad como se describe en Características de seguridad de CRT.

errno_t _gcvt_s( 
   char *buffer,
   size_t sizeInBytes,
   double value,
   int digits 
);
template <size_t cchStr>
errno_t _gcvt_s( 
   char (&buffer)[cchStr],
   double value,
   int digits 
); // C++ only

[out] buffer

Búfer para almacenar el resultado de la conversión.

[in] sizeInBytes

Tamaño del búfer.

[in] value

Valor que se va a convertir.

[in] digits

Número de dígitos significativos almacenados.

Cero si correctamente.Si un error se produce debido a un parámetro no válido (vea la tabla siguiente por valores no válidos), se invoca el controlador no válido del parámetro tal como se describe en Validación de parámetros.Si la ejecución puede continuar, se devuelve un código de error.Los códigos de error se definen en Errno.h.Para obtener una lista de estos errores, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Condiciones de error

buffer

sizeInBytes

value

digits

Devolución

Valor de buffer

NULL

any

any

any

EINVAL

No modificado.

No NULL (señala memoria válido)

cero

any

any

EINVAL

No modificado.

No NULL (señala memoria válido)

any

any

>= sizeInBytes

EINVAL

No modificado.

Problemas de seguridad

_gcvt_s puede generar una infracción de acceso si buffer no señala memoria válida y no es NULL.

La función de _gcvt_s convierte value flotante en una cadena de caracteres (que incluye un separador decimal y un byte posible de signo) y almacena la cadena en buffer. buffer debe ser suficiente para alojar el valor convertido más un carácter null de terminación, que se agrega automáticamente.Un búfer de longitud _CVTBUFSIZE es suficiente para cualquier valor de punto flotante.Si un tamaño de búfer de digits + 1 se utiliza, la función no sobrescribirá el fin del búfer, de modo que esté seguro de proporcionar un búfer suficiente para esta operación. _gcvt_s intenta generar los dígitos de digits en formato decimal.Si no puede, genera los dígitos de digits en formato exponencial.Los ceros finales se pueden suprimir en la conversión.

En C++, mediante esta función es simplificado por una sobrecarga de plantilla; la sobrecarga puede deducir longitud de búfer automáticamente, lo que elimina la necesidad de especificar un argumento size.Para obtener más información, vea Sobrecargas de plantilla seguras.

La versión de depuración de esta función primero rellena el búfer con 0xFD.Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold.

Requisitos

Rutina

Encabezado necesario

Encabezado opcional

_gcvt_s

<stdlib.h>

<error.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad en la introducción.

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

int main()
{
  char buf[_CVTBUFSIZE];
  int decimal;
  int sign;
  int err;

  err = _gcvt_s(buf, _CVTBUFSIZE, 1.2, 5);

  if (err != 0)
  {
     printf("_gcvt_s failed with error code %d\n", err);
     exit(1);
  }

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

}
Valor convertido: 1,2

Equivalente en .NET Framework

Mostrar:
© 2016 Microsoft