这应该很简单。我有一个函数遍历csv并基于逗号进行标记,并使用标记执行操作。其中一个是将其转换为int。不幸的是,第一个令牌可能并不总是一个int,所以当它不是时,我想把它设置为“5”。
目前:
t_tokenizer::iterator beg = tok.begin();
if(*beg! ) // something to check if it is an int...
{
number =5;
}
else
{
number = boost::lexical_cast<int>( *beg );
}
答案 0 :(得分:4)
看到lexical_cast
失败......
try {
number = boost::lexical_cast<int>(*beg);
}
catch(boost::bad_lexical_cast&) {
number = 5;
}
答案 1 :(得分:3)
我通常不喜欢以这种方式使用例外,但这对我有用:
try {
number = boost::lexical_cast<int>(*beg);
} catch (boost::bad_lexical_cast) {
number = 5;
}