簡體   English   中英

如何計算字符串中的未知浮點數

[英]How to count unknown number of floats in a string

有什么方法可以使用sscanf()計算字符串中的浮點數嗎?

count = sscanf(string, " %f %f /* an so on.. */", &temp, %temp2 /* ..*/);

我可以放入大量的"%f"和變量,但這似乎是愚蠢的主意,有什么辦法可以使其靈活嗎?
你可以幫幫我嗎?

編輯:我試圖以這種方式使用strtok() ,但它不起作用

    substring = strtok(lines_content, " " );
    temp  = sscanf(substring, "%f", &value);

    if(temp == 1)
    {
        no_of_floats_in_line++;
    }
    fflush(stdin);

    while(token = strtok(NULL, " ") != NULL)
    {
        substring = strtok(NULL, " ");
        temp  = sscanf(substring, "%f", &value);
        fflush(stdin);

        if(temp == 1)
        {
            no_of_floats_in_line++;
        }
    }

這是使用strtok()隔離字符串中的每個浮點的解決方案。

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

int main (void) {
    char flotsam[] = "0.0 1.1 2.2 PI 4.4";
    char *tok;
    float jetsam;
    int count = 0;
    tok = strtok(flotsam, " \f\r\n\t\v");
    while (tok) {
        if (sscanf(tok, "%f", &jetsam) == 1) {
            count++;
            printf ("Float is %f\n", jetsam);
        }
        else
            printf ("Error with %s\n", tok);
        tok = strtok(NULL, " \f\r\n\t\v");
    }
    printf ("Found %d floats\n", count);
    return 0;
}

程序輸出:

Float is 0.000000
Float is 1.100000
Float is 2.200000
Error with PI
Float is 4.400000
Found 4 floats

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM