Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_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 en 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

Return

Valor de buffer

NULL

cualquier

cualquier

cualquier

EINVAL

no modificado.

No NULL (señala memoria válido)

cero

cualquier

cualquier

EINVAL

no modificado.

No NULL (señala memoria válido)

cualquier

cualquier

>= 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 de seguridad.

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

rutina

Encabezado necesario

encabezado opcional

_gcvt_s

<stdlib.h>

<error.h>

Para obtener más información de 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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft