0

私は次のchar buffer[128]ように見えます:

-0.003662 0.996887 0.012818 1.010438 0.004120 1.025911

Cのこのchar配列から各floatを取得する最も簡単な方法は何でしょうか?

4

3 に答える 3

3

文字列に含まれるフロートの数がわかっている場合は、sscanfを検討することもできます。

char buffer[128] = "-0.003662 0.996887 0.012818 1.010438 0.004120 1.025911";
float nums[6];
int numFloats = sscanf(buffer, "%f %f %f %f %f %f",
                       &nums[0], &nums[1], &nums[2], &nums[3], &nums[4], &nums[5]);
于 2012-11-20T14:01:56.760 に答える
2

Uはstrtok()またはstrtok_r()を使用してそれを一時停止できます-strtokのマニュアルを参照してください:

次のようなもの:

void parse_numbers(char *buffer) {
    char *number = NULL;

   for (number = strtok(buffer, " "); number != NULL; number = strtok(NULL, " ")) {
       do_something_with_number(conert_string_to_float(number));
   }
}
float convert_string_to_float(char *number) {
    float return_value = 0;
    sscanf(number, "%f", &return_value);
    return return_value;
}
于 2012-11-20T13:56:43.993 に答える
1

たぶんあなたは見るべきです:
Strtok refferenceそしてこの質問より:文字列からfloatへの変換?

于 2012-11-20T13:56:38.533 に答える