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_('"')
),然后是(>>
)另一个报价('"'
)。