Witam , piszę ponieważ po napisaniu programu całość się kompiluje bez żadnych zastrzeżeń , lecz występuje problem z wczytywanie danych z pliku , otóż po użyciu kilku metod w celu zabezpieczenia tego procesu , wywołuje się komunikat z if'a z metoda fail(). Czy mógłby ktoś wskazać mi miejsce , w którym może występować błąd ? Z góry wielkie dzieki . Oto kod :
#include <iostream>/
#include <fstream>
#include <cstdlib>
#include <windows.h>
using namespace std;
struct Pisarz
{
int rok_urodzenia;
char nazwisko [20];
};
struct Ksiazka
{
char tytul [40];
int rok_wydania;
char rodzaj [20];
Pisarz autor ;
};
void wczytywanie_z_pliku(Ksiazka tabks[],int rozmiar);
int main()
{
const int = 5 ;
Ksiazka tab[N];
wczytywanie_z_pliku(tab,5);
return 0;
}
void wczytywanie_z_pliku(Ksiazka tabks[], int rozmiar)
{
int countr;
ifstream plik;
plik.open("ksiazka.txt",ios::in);
if(!plik.is_open())
{
cout<<"Otwarcie pliku nie powiodlo sie ."<<endl;
cout<<"Nastapi zamkniecie programu w przeciagu chwili ..."<<endl;
Sleep(1000);
}
for(int i = 0 ; i < rozmiar ; i++)
{
countr++;
plik.getline(tabks[i].tytul,40);
plik.get();
plik>>tabks[i].rok_wydania;
plik.getline(tabks[i].rodzaj,20);
plik.get();
plik.getline(tabks[i].autor.nazwisko,20);
plik.get();
plik>>tabks[i].autor.rok_urodzenia;
}
if(plik.eof())
cout<<"Koniec wczytywania danych z pliku . "<<endl;
else if(plik.fail())
cout<<"Blad wczytywania danych . ";
else
cout<<"Wczytywanie danych przerwane - przyczyna nieznana . "<<endl;
if(countr == 0)
{
cout<<"Nie wczytano zadnych danych . \n"
<<"program nie ma danych , aby przeprowadzic pozostale operacje . \n"
<<"Nastapi zamkniecie programu .";
exit(EXIT_FAILURE);
}
plik.close();
}
//oto plik txt z ktorego wczytuje dane
/*
ksiazka.txt
Lalka
1890
Powiesc
Prus
1847
Kamizelka
1882
Nowela
Prus
1847
Krzyzacy
1900
Powiesc
Sienkiewicz
1846
Chlopcy z Placu Broni
1906
Powiesc
Molnar
1878
Dzieci z Bulerbyn
1947
Opowiadanie
Lindgren
1907
*/