C snprintf不';Don’我不能和double一起工作。获取'';

C snprintf不';Don’我不能和double一起工作。获取'';,c,string,double,C,String,Double,我在寻找用c语言显示双值字符串的方法。但是使用snprintf我得到的是问号而不是价值。我的代码: char temp[50]; double c = 19.15928891; snprintf(temp, 8,"%lf", c); putstring(-2, temp); //send characters to rs232 (here getting only '?') 有人能告诉我另一种显示双精度字符串的方法吗 编辑,希望现在问题还可以:)尝试%f而不是%lf。根据库的使用年限,%lf

我在寻找用c语言显示双值字符串的方法。但是使用snprintf我得到的是问号而不是价值。我的代码:

char temp[50];
double c = 19.15928891;

snprintf(temp, 8,"%lf", c);
putstring(-2, temp); //send characters to rs232 (here getting only '?')
有人能告诉我另一种显示双精度字符串的方法吗


编辑,希望现在问题还可以:)

尝试
%f
而不是
%lf
。根据库的使用年限,
%lf
要么与
%f
相同,要么是一个错误(因此首先使用
%f


还请注意,
19.159289
(该
printf
的结果)需要存储10个字节,而不是8个。

“显示双精度字符串,不带c函数”,但您使用的是
snprintf
。你到底想要什么?是否使用标准库函数?如果有办法在不使用snprintf的情况下显示double-as字符串,我希望使用这种方式。。。实际上,我正在尝试使用该功能,但不想工作…@Sahee你在其他地方定义了
c
吗?啊,大家。。。。下面请注意:“putstring是将字符串发送到rs232的方法”@Sahee仍然不完整。特别是,它不会显示您是如何检查结果的。版本:
stdio.h 2135 2010-06-08
,%f不适用于。将8改为10,但仍表示
l
(“ell”)修饰符是C99的一部分。它可能不存在于不支持该版本标准的库中。无论如何,前面的编辑使用了
%f
@Olaf,好的,谢谢。那么有没有其他方法可以打印双精度图像?@Sahee:当然<代码>%f适用于所有符合C90-C11的C库。问题可能是您没有兼容的库。更有可能是您忘记将数学库链接到
-lm