尝试在 C++ 中使用 boost 正则表达式匹配从字符串转换为 int 时出错
Posted
技术标签:
【中文标题】尝试在 C++ 中使用 boost 正则表达式匹配从字符串转换为 int 时出错【英文标题】:Error trying to convert from string to int using boost regex match in c++ 【发布时间】:2015-05-20 14:42:39 【问题描述】:我正在尝试使用 regex/boost 将匹配的字符串转换为 int。
我用这个C++ to convert Boost Regex match result to other format 作为参考。但是,当我尝试时,我得到了 expected primary-expression before ‘int’
和 Symbol 'lexical_cast' could not be resolved
错误。
这是我的代码:
#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
using namespace boost;
int main()
string a = "123";
boost::regex e("123");
boost::smatch match;
if (boost::regex_search(a, match, e))
int number = boost::lexical_cast<int>(match[0]);
cout << number << endl;
return 0;
为什么会出现这些错误?
【问题讨论】:
【参考方案1】:你忘记了这一行:
#include <boost/lexical_cast.hpp>
【讨论】:
哇。谢谢。我知道这很愚蠢。如果我想转换为双精度/浮点数,我只需将<int>
更改为 <double>
、<float>
对吗?
是的,就可以了。定义了operator>>(std::ostream&, TYPE&)
的任何类型都应该可以工作。以上是关于尝试在 C++ 中使用 boost 正则表达式匹配从字符串转换为 int 时出错的主要内容,如果未能解决你的问题,请参考以下文章