次のような形式のファイルのデータを読み取りたい:
Point1, [3, 4]
区切り文字 '[' ']' と ',' を使用しており、それらを ' ' (空白) に置き換えています。私のコードは問題なく動作しています。しかし、問題は、Point1, [3, 4]
一度出現すると一意になり、テキストファイルに同じデータが存在する場合は二度と出現しないようにすることです。
ここに私が持っているものがあります:
string line, name;
char filename[50];
int x,y;
cout << "Please enter filename : ";
cin >> filename;
ifstream myfile(filename);
if (myfile.is_open()) {
while ( myfile.good() ) {
getline(myfile, line);
for (unsigned int i = 0; i < line.size(); ++i) {
if (line[i] == '[' || line[i] == ']' || line[i] == ',') {
line[i] = ' ';
}
istringstream in(line);
in >> name >> x >> y;
}
cout <<name <<endl;
if (name=="Point") {
p.push_back(Point(x,y));
}
count++;
}
myfile.close();
cout << count;
}
else cout<< "Unable to open file";
どうすればいいですか?この後追加してみましたif(name=="Point")
for (int j=0; j<p.size(); j++) {
if(p.getX != x && p.getY) != y) {
p.push_back(Point(x,y))
}
}
...しかし、データがベクターに格納されていないため、これは正しく機能していません。
誰でも助けることができますか?