如何将 double 转换为 char*

How to convert a double into a char*

我正在努力解决一个应该非常简单的问题:如何在基本 C 中进行简单的类型转换(从 doublechar*

我找到了很多解决方案,但它们都是基于从 doublechar[x] 的转换,但我在这里使用 char*,而不是 char[] ]. (我不知道结果字符串有多长)。
最重要的是,我真的不敢相信这么简单的事情需要另一种类型(stringstreamstd::strings、...)。

我承认,我是 C 语言的完全新手,但我使用过其他语言(Visual Basic、Delphi、Java、...),我就是可以'不明白为什么我找不到像 "to_char_pointer(double d)" 这样的简单函数来执行此操作。

有人有想法吗?

您可以像以前那样使用 sprintf() 将双精度数转换为字符串,但实际上我建议改用 _snprintf(),因为 sprintf() 不考虑字符串是固定长度设备这一事实在内存中,如果你不看它就会溢出。 _snprintf() 允许您指定输出字符串的长度,只需确保将大小指定为比实际分配的内存块小一,因为如果必须缩短输出,_snprintf() 不会存储终止空字符.

我们使用 _snprintf() 的一个例子是:

 void ToString(char * outStr, int length, double val)
    {
        _snprintf(outStr,length,"%f",val);
    }