Baza danych - ładowanie struktury z pliku txt

0

Witam,
mam do napisania prostą bazę danych na zaliczenie C++ na pierwszym roku studiów. Baza danych ma być oparta na strukturze kilku pól (lista jednokierunkowa) i umożliwiać dodawanie rekordów, przeglądanie i usuwanie. Funkcje do usuwania, przeglądania, dodawania mamy napisać sami, nie korzystając z klas.
Ogólnie wymyśliłem to tak, że program zapisuje wprowadzone wartości do pliku tekstowego (jeden rekord na jedną linię), oddzielając kolejne pola struktury średnikiem.

struct OSOBA
{
string imie;
string nazwisko;
string wiek;
string zawod;
OSOBA *next;
};

OSOBA top=NULL;



void Add(){
     
bool again;
  
    do{
       system("cls");
       OSOBA *rekord = new OSOBA;
       cout << "\n Podaj imie: ";    
       cin >> rekord->imie;
       cout << "\n Podaj nazwisko: ";
       cin >> rekord->nazwisko;
       cout << "\n Podaj wiek: ";
       cin >> rekord->wiek;
       cout << "\n Podaj plec: ";
       cin >> rekord->plec;

       rekord->next=NULL;
       OSOBA *temptop=top;
       
       if(temptop==NULL)
       {
        top=rekord;
       }
       else
       {
        while(temptop!=NULL) temptop=temptop->next;
        temptop=rekord;     
       }
       
       FILE *plik = fopen("db.txt", "a+");
       fprintf(plik, "%s;%s;%s;%s;\n", rekord->imie, rekord->nazwisko, rekord->wiek, rekord->zawod);
       fclose(plik);
       
       
       cout << "\n Dodać kolejny element?\n";
       char znak=getch();
       
       while(znak!='t' && znak!='n') znak=getch();
       if(znak=='t') again=true;
       if(znak=='n') again=false;

    }while(again);
    
}

Załóżmy, że mamy plik tekstowy postaci:
Jan;Kowalski;35;inżynier;
Piotr;Nowak;40;bezrobotny;
Anna;Polak;22;studentka;

Przy uruchamianiu programu chciałbym, żeby ładował on cały plik tekstowy do struktury, żeby póżniej można było na niej dokonywać operacji przeglądania, wyszukiwania czy usuwania. Napisałem kod, który wyciąga poszczególne wartości z kolejnych linii i je zapisuje w zmiennych, tylko że nie wiem, jak zapisywać kolejne wartości w strukturze... Czy ktoś mogłby podzielić się jakimś pomysłem, opinią, poradą? Byłbym bardzo wdzięczny :)

struct OSOBA
{
string imie;
string nazwisko;
string wiek;
string zawod;
OSOBA *next;
};

char c;

     FILE * plik;
     plik = fopen ("db.txt","r");
     if (plik!=NULL)
     {
	do{             
	
	string imie;
	string nazwisko;
	string plec;
	string wiek;
           
		do{       
		c=fgetc(plik); 
		if(c!=';') imie+=c;               
		}while(c!=';');
             
		do{
		c=fgetc(plik); 
		if(c!=';') nazwisko+=c;               
		}while(c!=';');
             
		do{
		c=fgetc(plik); 
		if(c!=';') plec+=c;               
		}while(c!=';');
             
		do{
		c=fgetc(plik); 
		if(c!=';') wiek+=c;               
		}while(c!=';');

             //tutaj jakiś kod do zapisania w strukturze?
             
}while(c!=EOF);

Byłbym naprawdę wdzięczny, gdyby ktoś wskazał mi właściwą drogę wykonania tego zadania. Cpp uczę się dopiero od dwóch miesięcy, więc napisanie powyższego kodu zajęło mi trochę czasu i myślenia.

0

EDIT: W obu kodach zamiast zmiennej plec powinna być zmienna zawod, zapomniałem zmienić.

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