vector<string> i rzutowanie na float

0
vector<string> _tokens;
//podziel char *_currLine na tokeny
 _tokens = SplitIntoWords(_currLine);
//to pnizej nie dziala!!! a konkretnie rzutowanie
    _holesList[GetHolNum()+1] = "%d %f %f", GetHolNum()+1,((float)_tokens.at(2).+(float)_tokens.at(4))/2,((float)_tokens.at(3)+(float)_tokens.at(5))/2;

jak zrobić poprawnie tutaj rzutowani? Dlaczego to nie dziala?
P.S. Od razu mowie ze w vector koniecznie MUSI vyc zadeklarowany jako vector<string> i vector<float> odpada!

0
aztech napisał(a)
vector<string> _tokens;
//podziel char *_currLine na tokeny
 _tokens = SplitIntoWords(_currLine);
//to pnizej nie dziala!!! a konkretnie rzutowanie
    _holesList[GetHolNum()+1] = "%d %f %f", GetHolNum()+1,((float)_tokens.at(2).+(float)_tokens.at(4))/2,((float)_tokens.at(3)+(float)_tokens.at(5))/2;

jak zrobić poprawnie tutaj rzutowani? Dlaczego to nie dziala?
P.S. Od razu mowie ze w vector koniecznie MUSI vyc zadeklarowany jako vector<string> i vector<float> odpada!

LUB JAK KTO WOLI INACZEJ: czemu nie da sie tak zroibc?

vector<string> _tokens;
//tutaj czesc prawidlowo wpisujaca jakies tam wartosci do _tokens
float dana;
dana = (float) _tokens.at(2);
0

Mozesz zrobic:

vector<string> _tokens;
//tutaj czesc prawidlowo wpisujaca jakies tam wartosci do _tokens
float dana;
dana = atof(  _tokens[2].c_str() );
0

Brawo, dokładnie o to chodziło!
Dzięki wielkie!

0

A może tak, C++ style'a:

float dana;
istringstream( tokens.at(3) ) >> dana;

Jak C++ to C++ :]

0

Wszystko pięknie z C++, tylko akurat pechowo stringstream jest skopany w wielu starszych wersjach STL (m.in. we wszystkich gcc serii 2.9x.x, które NADAL są w powszechnym użyciu). Więc w sumie bezpieczniej używać atof.

1 użytkowników online, w tym zalogowanych: 0, gości: 1