次のデータを含むtxtファイルがあります。
Point2D, [3, 2]
Line3D, [7, 12, 3], [-9, 13, 68]
Point3D, [1, 3, 8]
Line2D, [5, 7], [3, 8]
データを抽出できるように、複数の区切り記号を削除して実際にそれらを保存するにはどうすればよいですか?
私が望むのは、最初の行を読み込んで「、」、「[」、および「]」を無視して、Point2D、3、および 2 を個別に保存できるようにすることです。次に、2行目などに進みます。
また、これを行うことは可能ですか、例えば:
最初の行「Point2D, [3, 2]」は、Point2D が検出されると、3 と 2 が point2d.x と point2d.y に格納されます。
2 行目の "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();
}