【问题标题】:Reading C character arrays into doubles将 C 字符数组读入双精度数
【发布时间】:2011-03-29 18:06:53
【问题描述】:

这是一个非常初级的问题,但是我的 C 非常生锈,我需要复习一下。我有一个格式完全相同的字符串:di ###.# ###.# ###

我想将第一个数字读入d1,第二个读入d2,第三个读入d3

int main ()
{
  double d1, d2, d3;
  char mystring[] = "di 123.4 567.8 901";

  //some code that I don't know

  return 0;
}

你们能帮帮我吗?我知道 strtod() 可以帮助解析数字,但是如何跳过开头的“di”?

【问题讨论】:

标签: c string cstring scanf


【解决方案1】:

你可以使用sscanf:

sscanf(mystring, "di %lf %lf %lf", &d1, &d2, &d3);

在这一行中,您提供了一个格式字符串(基本上是在您期望数字的位置),然后按顺序提供您希望放入结果的变量的地址。 & 运算符获取它所应用的任何地址,在本例中是您的d1d2d3 变量。

The reference supplied 在 C++ 站点上,但用于此功能)

【讨论】:

  • %Llong double 的格式 - OP 的代码使用 double。我认为%lf 是你想要的。
  • 击败了我,包括指向 cplusplus 的链接。 +1。
  • @Carl:是的,谢谢。我只是在参考文献中控制“双”。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2010-11-21
相关资源
最近更新 更多