Witam!
mam taki program który ładuje dane z bazy do tablicy. w bazie jest chyba z 50 pozycji a mi ładuje się tylko do 7 pozycji... wydaje mi się ze to problem z przyznaną pamięcią dla tablicy. ale nie wiem jak ustawić na sztywno przyznaną pamięć. poza tym muszę dopisać parę linijek kodu w których po wpisaniu czegoś co nie jest w bazie wypisze się linijka na ekran ze nie ma takiego w bazie. próbowałem zrobić to sam ale nie wiem w czym tkwi problem ale mi się nie kompiluje. proszę więc o pomoc
Link do bazy:http://www19.zippyshare.com/v/45964331/file.html
Kompilator devc++
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct szereg
{
int numer; /// numer w bazie
string nuklid;
string czas;
string szereg;
string produkt;
};
int rozmiar(char *in)
{
string nuklid , produkt;
int numer;
string czas, szereg;
ifstream plik;
plik.open("szereg.txt");
int rozm = 0;
while(plik>>numer)
{
plik>>nuklid;
plik>>czas;
plik>>szereg;
plik>>produkt;
rozm ++;
}
plik.close();
return rozm;
}
void wypisz(szereg *s,int n)
{
for(int i=0;i<n;++i)
{
cout<<"Nr." <<s[i].numer<<endl;
cout<<"Nuklid :" <<s[i].nuklid<<endl;
cout<<"Czas :" <<s[i].czas<<endl;
cout<<"Szereg :" <<s[i].szereg<<endl;
cout<<"Produkt :" <<s[i].produkt<<endl;
cout<<"- - - - - - - - - - - - -\n";
}
}
void zpliku(char *in,szereg *s,int n)
{
ifstream plik;
plik.open("szereg.txt");
for(int i=0;i<n;++i)
{
plik>>s[i].numer;
plik>>s[i].nuklid;
plik>>s[i].czas;
plik>>s[i].szereg;
plik>>s[i].produkt;
}
}
void szukaj(szereg *s,int n,string szukany_nuklid)
{
int licznik = 0;
for(int i=0;i<n;++i)
{
if(s[i].nuklid == szukany_nuklid)
{
cout<<"Nr." <<s[i].numer<<endl;
cout<<"Nuklid :" <<s[i].nuklid<<endl;
cout<<"Czas :" <<s[i].czas<<endl;
cout<<"Szereg : " <<s[i].szereg<<endl;
cout<<"Produkt : "<<s[i].produkt<<endl;
cout<<"- - - - - - - - - - - - -\n";
licznik = licznik + 1; //zmienna licznik sprawdza czy w bazie byl nuklid
}
}
}
int main()
{
int znak;
char* argv = "szereg.txt";
do
{
cout<<" wyswietl wszystkie wcisnij - 1\n";
cout<<" sukaj nuklid wcisnij - 2\n";
cout<<" Wyjscie z programu wcisnij - 0\n";
cout<<"Co chcesz robic ??\n";
cin>>znak;
switch(znak)
{
case 1:
{
cout<<"Nuklidy w bazie :\n";
int n = rozmiar(argv);
szereg *s = new szereg [n];
zpliku(argv,s,n);
wypisz(s,n);
delete [] s;
break;
}
case 2:
{
ifstream plik;
plik.open(argv);
string szukany_nuklid;
cout<<"Podaj symbol nuklidu jaki chcesz znalezc \n";
cin>>szukany_nuklid;
int n = rozmiar(argv);
szereg *s = new szereg [n];
zpliku(argv,s,n);
szukaj(s,n,szukany_nuklid);
delete [] s;
break;
plik.close();
}
case 0:
{
cout<<"Dziekuje! Dowidzenia;)\n";
}
}
}
while(znak != 0);
return 0;
}