我正在努力解决一个非常简单的问题:如何在基本C中进行简单的类型转换(从double
到char*
)。
我找到了很多解决方案,但它们都基于double
到char[x]
的转化,但我在char*
处理,而不是char[]
。 (我不知道结果字符串会有多长)。
最重要的是,我真的不能相信另一种类型(无论是stringstream
,std::strings
,......)是否需要简单的东西。
我承认,我已经完成了基本C语言的新手,但我使用过其他语言(Visual Basic,Delphi,Java,...),我无法理解为什么我可以&#39 ;找到一个简单的函数,如" to_char_pointer(double d)"这样做。
有人有想法吗?
答案 0 :(得分:0)
你可以使用sprintf()将double转换为字符串,但我实际上建议使用_snprintf()而不是因为sprintf()不考虑字符串是内存中固定长度的设备这一事实如果你不看,它会溢出。 _snprintf()允许您指定out字符串的长度,只需确保将大小指定为小于实际分配的内存块的大小,因为_snprintf()如果必须将输出缩短,则不存储终止空字符
我们使用_snprintf()的一个例子是:
void ToString(char * outStr, int length, double val)
{
_snprintf(outStr,length,"%f",val);
}