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