Share via


_fcvt_s

将一个浮点数转换为字符串。 这是 _fcvt 的版本与安全增强的 CRT中的安全功能如中所述。

errno_t _fcvt_s( 
   char* buffer,
   size_t sizeInBytes,
   double value,
   int count,
   int *dec,
   int *sign 
);
template <size_t size>
errno_t _fcvt_s( 
   char (&buffer)[size],
   double value,
   int count,
   int *dec,
   int *sign 
); // C++ only

参数

  • [out] buffer
    将保存转换的结果所提供的缓冲区。

  • [in] sizeInBytes
    缓冲区的大小 (以字节为单位)。

  • [in] value
    将转换的数字。

  • [in] count
    小数点后数字的位数。

  • [out] dec
    为内存的指针小数点位置。

  • [out] sign
    对存储的符号指示的指针。

返回值

零,如果成功。 ,如果有错误,则返回值是错误代码。 错误代码。 Errno.h 定义。 有关列出了这些错误,请参见 errno、_doserrno、_sys_errlist和_sys_nerr

一旦无效参数,如下表中,此函数调用的参数无效处理程序,如 参数验证所述。 如果执行允许继续,此功能设置 errno 到 EINVAL 并返回 EINVAL。

错误状态

buffer

sizeInBytes

value

count

十二月

sign

Return

在 buffer的值

NULL

任何

任何

任何

任何

任何

EINVAL

不修改。

不是 NULL (指向有效的内存)

AMP_LT=0

任何

任何

任何

任何

EINVAL

不修改。

任何

任何

任何

任何

NULL

任何

EINVAL

不修改。

任何

任何

任何

任何

任何

NULL

EINVAL

不修改。

安全问题

,如果 buffer 不指向有效的内存而不是 NULL,_fcvt_s 可能发生访问冲突。

备注

_fcvt_s 函数将浮点数转换为 null 终止的字符串)。 value 参数是要转换的浮点数。 _fcvt_s 存储 value 数字为字符串并追加 null 字符 (“\ 0 ")。 count 参数指定在以后要存储的数量。 多余数字被舍入到 count 位置。 如果小于精度 count 数字有,该字符串填充零。

仅可在该字符串存储。 位置),并 value 的符号可以从 dec 和 sign 获取在调用之后。 dec 参数指向整数值;此整数值指定位置小数点有关该字符串的开头。 零或负整数值指示在第一个数字的小数点集。 该参数 sign 指向指示 value的符号整数。 该整数设置为 0,则 value 为正数的和设置为非零的数字,如果 value 为负数。

缓冲区长度 _CVTBUFSIZE 为所有浮点值就足够了。

在 _ecvt_s 和 _fcvt_s 之间的差异。 count 参数的解释。 ,当数字的总数在输出字符串的和 _fcvt_s 说明 count 作为数字个数在小数点后,_ecvt_s 解释 count 。

在 C++ 中,使用此函数由模板重载简化;重载可以自动推断缓冲区长度,而无需指定范围参数。 有关更多信息,请参见 安全模板重载

此函数的 " debug " 版本用 0xFD 首先加载缓冲区。 若要禁用此行为,请使用 _CrtSetDebugFillThreshold

要求

功能

必需的头

可选标头

_fcvt_s

stdlib.h

errno.h

有关更多兼容性信息,请参见中介绍的 兼容性

库:CRT库功能的所有版本。

示例

// fcvt_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 = _fcvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_fcvt_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_s

_gcvt_s

_fcvt