我是cpp的新手,并且我想要拆分数组字符串
我有
for( i = k = 0; i < points[1].size(); i++ )
{
cout << points[1][k];
}
输出&gt;&gt;
[390.826, 69.2596]
[500.324, 92.9649]
[475.391, 132.093]
[5.60519e-44, 4.62428e-44]
我想要
390.826
69.2596
500.324
92.9649
475.391
132.093
5.60519e-44
4.62428e-44
请帮助我。谢谢
答案 0 :(得分:3)
假设点的类型有public
个成员x
和y
:
for( i = k = 0; i < points[1].size(); i++ )
{
cout << points[1][k].x << endl;
cout << points[1][k].y << endl;
}
如果成员是其他成员,比如X
和Y
(大写),那么请改用大写字母(或者不管它是什么)。
您编码的原因是打印输出的方式,因为operator<<
已经为点的类型重载了。类似的东西:
std::ostream & operator<<(std::ostream & out, const point &p)
{
return out << "[" << p.x << "," << p.y << "]\n";
}
如果您可以在项目源代码中的某处搜索上述定义(或类似内容),然后可以将其更改为:
std::ostream & operator<<(std::ostream & out, const point &p)
{
return out << p.x << "\n" << p.y << "\n";
}
然后您不需要更改for
循环中的代码。
答案 1 :(得分:1)
这与字符串拆分无关,points[1][k]
实际返回的内容(即 type )。然后看看它是如何实现流出运算符(operator<<
)的,你会看到如何打印上面的内容。这应该为您提供关于两个单独值(即该类型的字段)的线索,您只需访问它们并打印出来。