sscanf()double&串

时间:2016-12-05 08:58:32

标签: c

我对编程世界还不熟悉,如果这是一个常见的错误,请原谅我。

我正在尝试从一个输入字符串中扫描3个双值和3个字符串,但在第二个值之后它不会继续。

double total_weight_kg(char *s, int Length) {
    double weights[3];
    char units[3];
    int test = sscanf(s, "%lf, %s, %lf, %s, %lf, %s",
                      &weights[0], &units[0],
                      &weights[1], &units[1],
                      &weights[2], &units[2]);
    printf("%i\n", test);
    printf("%s\n", &units[0]);

int main(void) {
    total_weight_kg("5, g, 1, t, 175, kg", 3);
    return 0;

第一张打印输出2,第二张打印出g。

此外,我想在循环中比较单位[i],但似乎无法使其正常工作。

for (int i = 0; i < Length; i++) {
    w = weights[i];
    if (strcmp(units[i], "kg") == 0) {
        weight += w;
    }
}

我希望你能帮助我找到解决这个问题的方法,

编辑:现在正在按预期工作。非常感谢您的帮助。 (19 [^,]是一个主要问题)

0 个答案:

没有答案