Wczytywanie danych z pliku

0

Witam mam pytanie bo sam już się gubię... Szukałem na cpp0x i w google i znalazłem kilka rzeczy ale części zupełnie nie rozumiem a jedna którą zrozumiałem nie działa... Mam przykładowy plik txt o następującej zawartości:
2016-10-07 4859 14 Silos IX

Jest podobnych linijek ok 200stu. I teraz pytanie jak mam wczytac zawartosc do osobnych zmiennych z vectrora?

Przykladowo tworze 7 wektorów, rok, miesiąc, dzień, waga, numer_dost, cel, (opcjonalnie) numer_cel. Teraz muszę wczytac wszystkie linijki do tych wektorów...

Ale nie mam pojęcia jak rozpocząć pobieranie danych tak żebym mógł wyznaczyć miejsce przeznaczenia + żeby po tych spacjach i - przenosiło się do następnej zmiennej.

Prosiłbym o wyrozumiałość ponad 3 godziny szukam sam dopiero teraz jak już wątpię czy sobie poradzę proszę was o pomoc.

1

Nie lepiej użyć jednego wektora struktur?

struct whatever
{
    std::string date;
    int unknown1;
    int unknown2;
    std::string silos;
    std::string unknown3;
};

auto main() -> int
{
    std::vector<whatever> whatevers;
    std::ifstream file("whatevers.txt");
    std::string line;
    while(std::getline(std::cin, line)) {
        std::stringstream ss{line};
        whatever w;
        ss >> w.date >> w.unknown1 >> w.unknown2 >> w.silos >> w.unknown3;
        whatevers.push_back(w);
    }
}

Coś takiego. Pisane z palca, więc mogą być błędy.

2
struct Trasport
{
    std::time_t date;
    double weight;
    std::string address;
};

auto load(std::istream& input) -> std::vector<Trasport>
{
    std::vector<Trasport> result;
    std::string line;
    while(std::getline(input, line)) {
        std::stringstream ss{line};
        Trasport trans;
        std::tm t;
        if ((ss >> std::get_time("%Y-%m-%d") >> trans.weight)
            && std::getline(ss >> std::ws, trans.address)) {
            trans.date = std::mktime(t);
            result.push_back(trans);
        } else {
           std::cerr << "Failed to read: " << line << '\n';
        }
    }
    return result;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1