wstringを解析して、int、float、または文字列自体にする必要があります。ここで私のような質問を見つけましたが、パーサーの使用方法がわかりません。test_parserメソッドが見つかりません。問題は、パーサーのカスタムルールを実装した後、それらをどのように使用するかということです。
1004 次
1 に答える
2
wstringをintに解析するのは簡単です。
wstring str(L"1234");
int i = 0;
qi::parse(str.begin(), str.end(), qi::int_, i);
assert(i == 1234);
同様に、フロートの解析は次のようになります。
wstring str(L"1234.567");
double d = 0;
qi::parse(str.begin(), str.end(), qi::double_, d);
assert(d == 1234.567);
「文字列の解析」とはどういう意味かわかりません。引用符で囲まれた文字列を解析することを意味する場合は、次のように記述できます。
wstring str(L"\"abc\"");
wstring s;
qi::parse(str.begin(), str.end(), '"' >> *~qi::char_('"') >> '"', s);
assert(s == L"abc");
表現'"' >> *~qi::char_('"') >> '"'
とは、引用符('"'
)の後に()が続く>>
0個以上の(*
)文字であり、引用符(~qi::char_('"')
)の後に(>>
)別の引用符()が続くことを意味します'"'
。
于 2011-08-26T12:39:20.700 に答える