У меня есть файл map.txt:
Montreal|Quebec,Toronto|30,40
New York|Boston,Philadelphia,Scranton|20,10,50
Я хочу назначить первую часть перед "|"для cityString, вторая часть дляdgeString и третья часть для costString.Затем я буду использовать boost, чтобы разбить строки на соответствующие векторы, и назначить эти векторы пользовательскому объекту CityNode.
Это мой код:
string cityString;
string edgesString;
string costString;
vector<string> edgesVector;
vector<string> costVector;
vector<CityNode> cities;
int i = 0;
bool used = true;
string line;
ifstream myfile(this->fileName);
if (myfile.is_open())
{
while (getline(myfile, line))
{
cout << cityString << "|" << edgesString << "|" << costString << "\n"; // read line of file
boost::split(edgesVector, edgesString, [](char c) {return c == ','; }); //split edgesString into vector delimiter: ','
boost::split(costVector, costString, [](char c) {return c == ','; }); // split costString into vector delimiter: ','
//ASSIGN VARIABLES
cities[i].setValues(cityString, edgesVector, costVector);
i++;
}
myfile.close();
}
else cout << "Incorrect file format";
return cities;
, когда я вызываю
cout << cities[0].getName();
Я получаю
||
||
вместо "Монреаля", как я хочу.Я думаю, что ошибка заключается в том, как я читаю переменные из файла, но я не знаю, как это исправить.Пожалуйста, помогите.