In C я мог бы сделать что-то вроде sscanf(string, "[%g , %g]", &f1, &f2);, чтобы извлечь два значения с плавающей запятой, что очень компактно.
В C++ я пока что придумал следующее:
Код: Выделить всё
std::string s = "[ 0.562 , 1.4e-2 ]"; // example input
float f1 = 0.0f, f2 = 0.0f;
size_t leftBound = s.find('[', 0) + 1;
size_t count = s.find(']', leftBound) - leftBound;
std::istringstream ss(s.substr(leftBound, count));
string garbage;
ss >> f1 >> garbage >> f2;
if(!ss)
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/23304177/c-alternative-for-parsing-input-with-sscanf[/url]