現在、テキストファイルを読み取ろうとしており、その中の重複行を無視しています。ここに私がこれまでに行ったことのコードサンプルがあります
string filename;
cout<<"Please enter filename: "<<endl;
cin>>filename;
ifstream inFile(filename.data());
typedef std::map<std::string, int> line_record;
line_record lines;
int line_number = 1;
if(inFile.is_open())
{
while(std::getline(inFile, line))
{
line_record::iterator existing = lines.find(line);
if(existing != lines.end())
{
existing->second = (-1);
}
else
{
lines.insert(std::make_pair(line,line_number));
++line_number;
getline(inFile,line);
cout<<line<<endl;
noOfLine++;
}
}
}else
{
cout<<"Error opening file! Please try again!"<<endl;
}
cout<<"\n"<<noOfLine<<" record(s) read in successfully!\n"<<endl;
テキストファイル(以下):
Point2D, [3, 2]
Line3D, [7, 12, 3], [-9, 13, 68]
Point3D, [1, 3, 8]
Line2D, [5, 7], [3, 8]
Point2D, [3, 2]
Line3D, [7, -12, 3], [9, 13, 68]
Point3D, [6, 9, 5]
Point2D, [3, 2]
Line3D, [70, -120, -3], [-29, 1, 268]
Line3D, [25, -69, -33], [-2, -41, 58]
Point3D, [6, 9, -50]
しかし、私が得ている結果は次のとおりです。
Line3D, [7, 12, 3], [-9, 13, 68]
Line2D, [5, 7], [3, 8]
Point3D, [6, 9, 5]
Line3D, [25, -69, -33], [-2, -41, 58]
Point3D, [6, 9, -50]
何か助けて?? ありがとう!!