1
我需要將一個wstring解析爲int,float或者一個字符串本身。我發現了一個類似於我的問題Here的問題,但我不明白如何使用解析器。我沒有找到test_parser方法。問題是:在實現解析器的自定義規則之後,如何使用它們?把字符串解析爲int或者用boost spirit浮點數
我需要將一個wstring解析爲int,float或者一個字符串本身。我發現了一個類似於我的問題Here的問題,但我不明白如何使用解析器。我沒有找到test_parser方法。問題是:在實現解析器的自定義規則之後,如何使用它們?把字符串解析爲int或者用boost spirit浮點數
解析的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");
的expession '"' >> *~qi::char_('"') >> '"'
意味着:如果你的意思是它作爲解析引用字符串,你可以寫它,然後(>>
)零個或多個(*
)字符報價('"'
),這是不是一個引號( (~qi::char_('"')
),然後是(>>
)另一個報價('"'
)。