Witam. Mam problem z moją mini bazą danych. Funkcja odczytująca z pliku dane nie chce mi ich wprowadzać do tablicy.
Był bym wdzięczny za pomoc
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <conio.h>
//#include <cstdio>
using namespace std;
void odczyt_z_pliku();
void zapis_do_pliku();
class dane
{
public:
char imie[20],nazwisko[20];
int wiek;
public:
void zapisywanie(char *first, char *last, int lat);
void odczyt()
{
cout<<imie<<" "<<nazwisko<<", lat: "<<wiek<<endl;
}
};
dane osoby[100];
////////////////////////////////////////////////////////
int main()
{
char wybor;
odczyt_z_pliku();
int a=0;
do
{
system("cls");
cout<<"\t\tBAZA DANYCH OSOB";
cout<<"\n1.Odczyt\n2.Zapis\n3.Koniec\n";
wybor=getch();
switch(wybor)
{
case '1': for(int i=0;i<a;i++) osoby[i].odczyt();
system("pause");
break;
case '2':
cout<<"\n\nPodaj Imie: ";
char imie[20];
cin>>imie;
cout<<"\nPodaj Nazwisko: ";
char nazwisko[20];
cin>>nazwisko;
cout<<"\nPodaj wiek: ";
int wiek;
cin>>wiek;
osoby[a].zapisywanie(imie,nazwisko,wiek);
a++;
break;
default: wybor=27;
}
}while(wybor!=27);
zapis_do_pliku();
}
////////////////////////////////////////////////////////
void dane::zapisywanie(char *first, char *last, int lat)
{
strcpy(imie,first);
strcpy(nazwisko,last);
wiek=lat;
}
///////////////////////////////////////////////////////
void zapis_do_pliku()
{
int i;
std::fstream plik;
//otwarcie pliku do zapisu
//ios::app ustawienie wskaznika na koncu pliku, ios::out mozliwosc zapisu pliku
plik.open("baza.txt", ios::out|ios::app);
//wpisanie danych z bazy do pliku
for (i = 0; i < 100; i++) {
if(!(osoby[i].wiek)) break;
plik << osoby[i].imie << endl;
plik << osoby[i].nazwisko << endl;
plik << osoby[i].wiek << endl;
plik << endl;
}
//zamkniecie pliku
plik.close();
}
////////////////////////////////////////////////////////
void odczyt_z_pliku()
{
std::fstream plik;
plik.open("baza.txt", ios::in);
if(plik.good()==true)
{
int i=0;
while(!plik.eof())
{
// if(!(osoby[i].wiek)) break;
plik >> osoby[i].imie;// >> endl;
plik >> osoby[i].nazwisko;// >> endl ;
plik >> osoby[i].wiek;// >> endl;
i++;
}
plik.close();
}
}