我想从一个std::string
创建一个std::array
。
为此,我希望重载operator>>
。
我有以下测试用例:
std::istream& operator>>(std::istream& is, const std::array<double, 3>& a)
{
char p1, p2;
is >> p1;
// if fail warn the user
for (unsigned int i = 1; i < a.size(); ++i)
{
// something to ignore/ check if numeric
}
is >> p2;
// if fail warn the user
return is;
}
int main()
{
std::string a = "[1 2 3]";
std::array<double, 3> arr;
std::istringstream iss (a);
iss >> arr;
return 0;
}
我希望操作员检查字符[
和]
是否在正确的位置,并使用其中的元素构造数组。
我如何检查提取是否成功?我如何检查括号中的字符串是否为数字,如果是,则从中构造数组?
此致
1条答案
按热度按时间dgtucam11#
我将添加一个helper类,它检查流中的某个字符,如果存在则将其删除,如果不存在则设置故障位。
示例:
它可以这样使用:
Demo,其中
,
用作输入中的分隔符。