Я хочу взять 4 значения, каждое через запятую, и сохранить их в объекте аэропорта.Каждая строка будет иметь эти 4 значения будут храниться вместе.Таким образом, при вызове всех объектов из Швеции будут найдены все объекты из страны Швеции, а также найдены соответствующие значения.Прямо сейчас у меня есть 4 различных вектора, которые хранят все 4 значения объекта, однако, не обязательно устанавливать все 4 атрибута / значения вместе как объект.Помощь очень ценится.
Примеры того, как выглядит текстовый файл -
1, Горока, Горока, Папуа-Новая Гвинея, GKA, AYGA, -6.081689,145.391881,5282,10, U 2, Маданг, МадангПапуа-Новая Гвинея, MAG, AYMD, -5,207083,145,7887,20,10, U
#include "pch.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <iterator>
#include <algorithm>
using namespace std;
struct Airport
{
string code;
string name;
string city;
string nation;
friend std::istream& operator>>(std::istream& input, Airport& a);
};
istream& operator>>(std::istream& input, Airport& a)
{
getline(input, a.code, ',');
getline(input, a.name, ',');
getline(input, a.city, ',');
getline(input, a.nation);
return input;
}
////////////////////////////////////////////
vector<string> split(const string& s, const string& delim)
{
const bool keep_empty = true;
vector<string> result;
if (delim.empty())
{
result.push_back(s);
return result;
}
string::const_iterator substart = s.begin(), subend;
while (true)
{
subend = search(substart, s.end(), delim.begin(), delim.end());
string temp(substart, subend);
if (keep_empty || !temp.empty())
{
result.push_back(temp);
}
if (subend == s.end())
{
break;
}
substart = subend + delim.size();
}
return result;
}
// Sorting Function
bool Sort_By_Name_Ascending(const Airport& a, const Airport& b)
{
return a.name < b.name;
}
int main()
{
vector<Airport> database;
Airport a;
char choice;
string chr;
ifstream inputFile;
inputFile.open("airports.dat");
if (!inputFile)
{
cout << "File Access Error!";
return 0;
}
string fileLine;
cout << "Reading File ..." << endl;
while (!inputFile.eof())
{
getline(inputFile, fileLine);
vector<string> lineVector = split(fileLine, ",");
if (lineVector[4].length() == 3)
{
while (inputFile >> a)
{
database.push_back(a);
}
}
}
cout << "What would you like to do?\nA. Sort in Alphabetical Order.\nB.
Delete an Airport.\nC. Exit Program." << endl;
cin >> choice;
switch (choice)
{
case 'A':
sort(database.begin(), database.end(), Sort_By_Name_Ascending);
break;
case 'B':
cout << "Deleting a value" << endl;
break;
case 'C':
return 0;
break;
}
return 0;
}