_ecvt_s

Преобразование a double номер строки.это версия _ecvt со службами расширений безопасности, как описано в разделе Средства безопасности в CRT.

errno_t _ecvt_s( 
   char * _Buffer,
   size_t _SizeInBytes,
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
);
template <size_t size>
errno_t _ecvt_s( 
   char (&_Buffer)[size],
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
); // C++ only

Параметры

  • [исходящий] _Buffer
    Заполнено с указателем на строку знаков, результат преобразования.

  • [входящий] _SizeInBytes
    Размер буфера в байтах.

  • [входящий] _Value
    Число для преобразования.

  • [входящий] _Count
    Количество цифр, которые хранятся.

  • [исходящий] _Dec
    Магазины позиция десятичной запятой.

  • [исходящий] _Sign
    Символ преобразованного числа.

Возвращаемое значение

Нуль, если успешно.Возвращаемое значение кода ошибки, если сбой.Коды ошибок, определенные в Errno.h.Дополнительные сведения см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.

В случае недопустимого параметра, как показано в следующей таблице, эта функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то наборы этой функции errno В EINVAL возвращает EINVAL.

Условия возникновения ошибок

_Buffer

_SizeInBytes

_Value

_Count

_Dec

_Sign

Возвращаемое значение

Значение в пределах buffer

NULL

any

any

any

any

any

EINVAL

Не изменяется.

NOT NULL (указывает на допустимый памяти)

<=0

any

any

any

any

EINVAL

Не изменяется.

any

any

any

any

NULL

any

EINVAL

Не изменяется.

any

any

any

any

any

NULL

EINVAL

Не изменяется.

Вопросы безопасности

_ecvt_s Нарушение прав доступа, если может создать buffer не указывает на допустимый памяти и нет NULL.

Заметки

_ecvt_s функция преобразует число с плавающей запятой в командную строку._Value параметр число с плавающей запятой, которые требуется преобразовать.Эта функция хранит значение count числа _Value как строка и добавления нуль-символ (" \ 0 ").Если количество знаков в пределах _Value превышает _Count- младший число округляется.Если меньше count числа, строки заполняются нулями.

Только числа хранятся в строке.Позиция десятичной запятой, а символ _Value может быть получен из _Dec и _Sign после вызова._Dec указатель на значение параметра, задающего десятичной запятой целого числа позицию относительно начала строки.0 Или отрицательное целое значение указывает на то, что десятичная запятая, расположенную слева от первого числа._Sign элементы параметра целое число, которое указывает знак преобразованного числа.Если целое значение 0, то число является положительным.В противном случае - число является отрицательным.

Буфера длины _CVTBUFSIZE недостаточно для любого значения с плавающей запятой.

различие _ecvt_s и _fcvt_s в толковании _Count параметр._ecvt_s интерпретирует _Count так как общее количество цифр в выходной строке, тогда как _fcvt_s интерпретирует _Count как число знаков после десятичной запятой.

В C++ с помощью этой функции упрощает перегрузкой шаблона; перегрузка может определить длину буфера автоматически, устранение необходимости указывать аргумент size.Дополнительные сведения см. в разделе Предоставляйте перегруженный шаблона.

Отладочная версия этой функции сначала заполняет буфер с 0xFD.Чтобы отключить эту реакция на событие, воспользуйтесь _CrtSetDebugFillThreshold.

Требования

Функция

Обязательный заголовок

Необязательный заголовок

_ecvt_s

<stdlib.h>

<errno.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

Пример

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

int main( )
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _ecvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_ecvt_s failed with error code %d\n", err);
     exit(1);
  }

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

Эквивалент в .NET Framework

ToString

См. также

Ссылки

Преобразование данных

Поддержка чисел с плавающей запятой

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt_s

_gcvt_s