Czyli chyba o czymś gdzieś zapomniałem.
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct kosmos
{
int numer; // numer w bazie
string nazwa;
string masa;
string ID;
};
void dodaj(char *in,kosmos *s,int n)
{
ofstream plik;
plik.open(in);
for(int i=0;i<n;++i)
{
s[i].numer=i+1;
plik<<s[i].numer<<endl;
cout<<"Podaj nazwe obiektu: \n";
cin>>s[i].nazwa;
plik<<s[i].nazwa<<endl;
cout<<"Podaj mase obiektu: \n";
cin>>s[i].masa;
plik<<s[i].masa<<endl;
plik<<"\n\n\n";
}
plik.close();
}
int rozmiar(char *in)
{
string nazwa, masa;
int ID;
ifstream plik;
plik.open(in);
int rozmiar=0;
while(!plik.eof())
{
plik>>ID;
plik>>nazwa;
plik>>masa;
rozmiar += 1;
}
plik.close();
return rozmiar;
}
TU JESZCZE VOIDY OD SORTOWANIA, ALE CHYBA NIE MAJĄ NIC DO RZECZY.
int main(int argc,char **argv)
{
cout<<"ENCYKLOPEDIA KOSMOSU!"<<endl;
int znak;
argv[1] = "kosmos.txt";
do
{
cout<<"1: Stworz encyklopedie (plik) \n";
i inne couty
cin>>znak;
switch(znak)
{
case 1:
{
int n;
cout<<"Ile pozycji chcesz wprowadzic na start? \n";
cin>>n;
kosmos *s = new kosmos [n];
dodaj(argv[1],s,n);
break;
}
case 2:
{
int ile;
cout<<"Ile pozycji chcesz dopisac? \n";
cin>>ile;
int roz = rozmiar(argv[1])+ile-1;
int rozm = rozmiar(argv[1])-1;
kosmos *s = new kosmos [roz];
zpliku(argv[1],s,rozm);
for(int i=rozm;i<roz;++i)
{
s[i].ID = i+1;
cout<<"Podaj nazwe: \n";
cin>>s[i].nazwa;
cout<<"Podaj mase: \n";
cin>>s[i].masa;
}
ofstream plik;
plik.open(argv[1]);
for(int i=0;i<roz;++i)
{
plik<<s[i].ID<<endl;
plik<<s[i].nazwa<<endl;
plik<<s[i].masa<<endl;
plik<<"\n\n";
}
plik.close();
delete [] s;
break;
}
case 3:
{
cout<<"Pozycje w encyklopedii: \n\n";
int n = rozmiar(argv[1])-1;
kosmos *s=new kosmos [n];
zpliku(argv[1],s,n);
wypisz(s,n);
delete [] s;
break;
}