【问题标题】:Reading floats from string as 2 integers从字符串中读取浮点数为 2 个整数
【发布时间】:2015-11-21 20:36:09
【问题描述】:

我正在尝试从将它们拆分为 2 个整数的字符串中读取浮点数。

sscanf(line, "%d.%d", &dec, &frac));

这适用于这样的字符串:

"0.25"

但如果数字前有一个可选的符号,它就不再起作用了。

"-0.25"

我如何“告诉”sscanf,数字前可能有一个可选符号?

【问题讨论】:

  • 小心这个策略。如果line"-1.-2"frac 最终是负面的——也许不是你想要的。
  • 有什么不好的? -0 = 0.

标签: c integer scanf


【解决方案1】:

据我所知,%d 很好,因为它适用于有符号整数,但这里的问题来自 -00 的事实......你必须找到一个解决方法,因为我不知道'认为您无法为该特定案例找到一种简洁明了的方法。

【讨论】:

  • 如果你只想打印,可以:if(dec == 0 && line[0] == '-') printf("-");,然后正常打印。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多