我需要从字符串中获取一些双打。
string data = getMyData();
char** next;
double start = strtod(data.c_str(), next);
if (&data == &(*next)) //check wether a double has been found - not working
{
std::cerr << "Value can't be read.\nAborting.";
return;
}
我的想法是检查数据的第一个字符和下一个字符的内存地址。 目前我正在学习自我教育中的C ++,所以最好能找到最好的解决方案,而不仅仅是一个有效的解决方案。
答案 0 :(得分:3)
应该是:
char* next;
double start = strtod(data.c_str(), &next);
if (data.c_str() == next)
请记住next
将指向下一个逗号,如果它们是逗号分隔的,而不是下一个数字的开头。