使用sscanf

时间:2016-11-03 04:08:24

标签: c++ scanf

我正在尝试使用以下代码来读取括号内的第二个数字,但它不起作用,我正在关注此帖How to use sscanf in loops?中的方法。我调试我的代码,问题是它没有进入while循环,有人可以告诉我如何修复它吗?

#include <stdio.h>
#include <string>

int main(void)
{
    std::string line = "(1:1.1) (2:18.5) (3:40.0) (4:11.0)";
    char const *data = line.c_str();
    int offset;
    int index;
    double value;
    double sum = 0;

    while (sscanf(data, " (%d:%lf)%n", &index, &value,&offset) == 1)
    {
        sum += value;
        data += offset;
    }

    printf("sum = %d\n", sum);
}

1 个答案:

答案 0 :(得分:1)

要打印double,你应该使用UITableViewCell和scan一样,而不是检查sscanf是否返回1,你应该检查它何时返回大于0。

%lf