C 读取字符串中的浮点数为2个整数

C 读取字符串中的浮点数为2个整数,c,integer,scanf,C,Integer,Scanf,我试图从字符串中读取浮点数,将它们拆分为2个整数 sscanf(line, "%d.%d", &dec, &frac)); 这适用于以下字符串: "0.25" 但是如果在数字前有一个可选的符号,它就不起作用了 "-0.25" 我怎样才能“告诉”sscanf,在数字之前可能有一个可选符号?据我所知%d很好,因为它是有符号整数,但这里的问题来自这样一个事实,-0是0。。。您必须找到一个解决方法,因为我认为您无法为该特定情况找到一个干净、简单的方法。如果您只想打印它,您可以这样做

我试图从字符串中读取浮点数,将它们拆分为2个整数

sscanf(line, "%d.%d", &dec, &frac));
这适用于以下字符串:

"0.25"
但是如果在数字前有一个可选的符号,它就不起作用了

"-0.25"

我怎样才能“告诉”sscanf,在数字之前可能有一个可选符号?

据我所知
%d
很好,因为它是有符号整数,但这里的问题来自这样一个事实,
-0
0
。。。您必须找到一个解决方法,因为我认为您无法为该特定情况找到一个干净、简单的方法。

如果您只想打印它,您可以这样做:
If(dec==0&&line[0]=='-')printf(“-”),然后按正常方式打印。请注意此策略。。如果
line
“-1.-2”
frac
最终是负数-可能不是您想要的。有什么不起作用<代码>-0
=
0