2

これは簡単なはずです。csvをトラバースし、コンマに基づいてトークン化し、トークンを使用して処理を行う関数があります。これらの1つは、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 );
}
4

2 に答える 2

4

失敗のスローとして見てlexical_cast...

try {
    number = boost::lexical_cast<int>(*beg);
}
catch(boost::bad_lexical_cast&) {
    number = 5;
}
于 2011-12-03T00:40:28.167 に答える
3

私は通常、このように例外を使用するのは好きではありませんが、これは私にとってはうまくいきました:

try {
    number = boost::lexical_cast<int>(*beg);
} catch (boost::bad_lexical_cast) {
    number = 5;
}
于 2011-12-03T00:40:09.153 に答える