如何将double转换为char *

时间:2015-08-26 14:40:46

标签: c++ char double type-conversion

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

我找到了很多解决方案,但它们都基于doublechar[x]的转化,但我在char*处理,而不是char[]。 (我不知道结果字符串会有多长)。
最重要的是,我真的不能相信另一种类型(无论是stringstreamstd::strings,......)是否需要简单的东西。

我承认,我已经完成了基本C语言的新手,但我使用过其他语言(Visual Basic,Delphi,Java,...),我无法理解为什么我可以&#39 ;找到一个简单的函数,如" to_char_pointer(double d)"这样做。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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