-3

次の文字列があるとします。

string str = "I 500.000 500.000 30000 30.000 60.000 20.000 20.0 60.0 ;"

そして、次の変数:

double x1;
double x2;
int x3;

そして、上記の文字列を解析して、最終的に

x1 = 500.000
x2 = 500.000
x3 = 30000

そのような解析を行う最良の方法は何でしょうか? コード スニペットをいただければ幸いです。

ありがとう!


アップデート

さて、私が「最高」と言ったとき、実際には、文字列がどのようにフォーマットされているかを正確に知っている上記のサンプル文字列が与えられたときのように、最も簡単な意味でした. たとえば、文字の後に 2 つの double が続き、その後に整数が続くなど...そして、私が気にするのは、すっきりとシンプルな最短のコードだけです。時間と余分なデータ処理を気にする必要はありません。

4

2 に答える 2

3

stringstream はあなたのニーズに合っています:

#include <sstream>

std::istringstream iss(str);
iss.get(); //'I'

if (iss >> x1 >> x2 >> x3) {
    //success
}
于 2013-04-06T18:42:53.320 に答える
2

次のように stringstream を使用します。

string str = "I 500.000 500.000 30000 30.000 60.000 20.000 20.0 60.0 ;"
stringstream ss(str);
char c =' ';

ss >>c>> x1 >> x2  >>x3 ;
于 2013-04-06T18:43:45.897 に答える