Wątek przeniesiony 2019-01-02 09:03 z Newbie przez Adam Boduch.

Dodawanie danych do struktury

0

Dzień dobry

Problem jest następujący:
Chcę zrobić plan który będzie przyporządkowywał do nazwisk zajęcia i sortował je.
Program będzie pobierał dane z pliku txt i potem tworzył osobne pliki nazwisko.txt z posortowanymi danymi.
Na razie mam takie coś:


#include<iostream>
#include<string>
#include<fstream>
#include<cstdlib>
using namespace std;

struct plan
{
    string godzina_rozpoczecia;
    string godzina_zakonczenia;
    string dzien;
    string grupa;
    string prowadzacy;
    string przedmiot;

};

string nauczyciel[5];

int main()
{

    fstream plik;
    plik.open("plan.txt", ios::in);
    if (plik.good() == false)
    {
        cout << "Dostep do pliku zostal zabroniony!" << endl;
        exit(0);

    }

    string linia;
    int nr_linii = 1;
    int boom = 0;

    while (getline(plik, linia))
    {
        switch (nr_linii)
        {
        case 1:  tab[boom].prowadzacy = linia; break;

        }
        if (nr_linii == 1)
        {
            nr_linii = 0;
            boom++;
        }
        nr_linii++;

    }
    plik.close();
    for (int i = 0; i < boom; i++)
    {
        cout << nauczyciel[i] << endl;
    }

    system("pause");
    return 0;
}

Zapisuje mi się to do stringa nauczyciel.
Jestem początkujący dlatego proszę o dobre rady i może jakieś korzystne źródła.
przykładowa linijka z danymi w pliku txt wygląda np tak:
05:23-12:34 cz gr1 Jaworek Anatomia

Myślę nad tym żeby to w pętli potem getch zapisywać do struktur w zależności od tego gdzie jest spacja ale nie wiem na razie jak to zrobić
0

Wywołaj tę funkcję dla każdej odczytanej linii pliku. Funkcja zwróci true, jeśli wszystkie dane zostały odczytane prawidłowo.

#include <sstream>

bool PobierzDane(const string& linia, plan* dane)
{
    stringstream strumien(linia);
    string godziny;
    if (strumien >> godziny >> dane->dzien >> dane->grupa >> dane->prowadzacy >> dane->przedmiot)
    {
        dane->godzina_rozpoczecia = godziny.substr(0, 5);
        dane->godzina_zakonczenia = godziny.substr(6, 5);
        return true;
    }
    return false;
}

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