我有一个包含以下数据的txt文件:
Point2D, [3, 2]
Line3D, [7, 12, 3], [-9, 13, 68]
Point3D, [1, 3, 8]
Line2D, [5, 7], [3, 8]
我如何通过删除多个分隔符来实际存储它们,以便我可以提取数据?
我想要的是读入第一行并忽略“,”“[”和“]”所以我可以单独存储Point2D,3和2。然后我继续进行第二行,依此类推。
此外,是否可以这样做,例如:
第一行“Point2D,[3,2]”,当检测到Point2D时,它会将3和2存储到point2d.x和point2d.y中。
对于第二行“Line3D,[7,12,3,[ - 9,13,68]”,它会将值存储到line3d.x,line3d.y,line3d.z中,依此类推
现在我只能忽略','。这就是我到目前为止所做的:
void readData()
{
string fileName;
int i=0;
cout << "Enter file name: ";
cin >> fileName;
fstream infile;
infile.open(fileName.data());
// This will count the number of lines in the textfile.
if (! infile.is_open())
{
cerr<<"Error : " << fileName.data() <<" is not found"<<endl;
}
string line;
stringstream field;
while (getline(infile,line))
{
string f;
field<<line;
while (getline(field,f,','))
{
recordA.push_back(f);
}
field.clear();
}
cout << recordA.size() << " records read in successfully!";
infile.close();
}
答案 0 :(得分:0)
为了使你的生活复杂化,我建议如下:
Point2D
实例。Point2D
会有一种方法来解析&#34; [3,2]&#34;并指定3
第一个纵坐标,第二个纵坐标.2。简单。让对象读取自己的数据。