Witam
Oto mój projekt. Mam wielką prośbę, czy moglibyście mi pomóc w tym, aby zrobić edycję rekordów zapisanych w pliku, zacząłem to robić, proszę o sprawdzenie. Moglibyście mi pomóc zrobić możliwość wydruku gotowego pliku binarnego?
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <fstream>
using namespace std;
class samochod
{
private:
char marka[20];
char model[20];
char kolor[20];
char skrzynia_biegow[20];
char dodatkowe_wyposazenie[200];
int rok_produkcji;
int przebieg;
int moc;
int pojemnosc;
int liczba_drzwi;
public:
samochod()
{}
~samochod()
{}
void przyjmij(char * mar, char * mod, char * kol, char * skr, char * dod, int rok, int przeb, int moc, int poj, int drzwi)
{
strcpy(marka,mar);
strcpy(model,mod);
strcpy(kolor,kol);
strcpy(skrzynia_biegow,skr);
strcpy(dodatkowe_wyposazenie,dod);
rok_produkcji=rok;
przebieg=przeb;
moc=moc;
pojemnosc=poj;
liczba_drzwi=drzwi;
}
void pokaz()
{
cout << marka << endl;
cout << model<< endl;
cout << kolor<< endl;
cout << skrzynia_biegow<< endl;
cout << dodatkowe_wyposazenie<< endl;
cout << rok_produkcji<< endl;
cout << przebieg<< endl;
cout << moc<< endl;
cout << pojemnosc<< endl;
cout << liczba_drzwi<< endl;
}
};
main()
{
samochod* tablica ;
tablica = new samochod[5];
samochod* tablica2 ;
tablica2 = new samochod[5];
char marka[20];
char model[20];
char kolor[20];
char skrzynia_biegow[20];
char dodatkowe_wyposazenie[500];
int rok_produkcji;
int przebieg;
int moc;
int pojemnosc;
int liczba_drzwi;
int liczba_samochodow;
ofstream plik;
ifstream plik2;
int i;
cout << "Podaj ilosc aut do wprowadzenia (5)"<<endl;
cin>>liczba_samochodow;
for (i=0;i<liczba_samochodow;i++)
{
cout<<"-------------------------------------------------------"<<endl;
cout <<"Samochod numer"<<i+1<< endl;
cout << "Podaj marke"<<endl;
cin >> marka;
cout << "Podaj model"<<endl;
cin>> model;
cout << "Podaj kolor"<< endl;
cin >> kolor;
cout << "Podaj skrzynie biegow automatyczna/manualna"<<endl;
cin >> skrzynia_biegow;
cout << "Podaj dodatkowe wyposazenie"<< endl;
cin >> dodatkowe_wyposazenie;
cout << "Podaj rok produkcji"<< endl;
cin >> rok_produkcji;
cout << "Podaj przebieg"<<endl;
cin >> przebieg;
cout << "Podaj moc (KM)"<< endl;
cin >> moc;
cout << "Podaj pojemnosc (ccm)"<< endl;
cin >> pojemnosc;
cout << "Podaj liczba drzwi"<< endl;
cin >> liczba_drzwi;
tablica[i].przyjmij(marka,model,kolor,skrzynia_biegow,dodatkowe_wyposazenie,rok_produkcji,przebieg,moc,pojemnosc,liczba_drzwi);
}
for (i=0;i<liczba_samochodow;i++)
{
tablica[i].pokaz();
cout<<"----------------------------------------------"<<endl;
getch();
}
//zapis
plik.open( "dane.bin", ios::binary);
if( plik.good() == true )
{
cout << "Uzyskano dostep do pliku!" << endl;
for (i=0;i<liczba_samochodow;i++)
plik.write((char *) &tablica[i], sizeof(samochod));
cout<<"Zapis pliku - zakonczony pomyslnie"<<endl;
getch();
//tu operacje na pliku
plik.close();
} else cout << "Dostep do pliku zostal zabroniony!" << endl;
//odczyt
plik2.open( "dane.bin", ios::binary);
if( plik2.good() == true )
{
for (i=0;i<liczba_samochodow;i++)
plik2.read((char *) &tablica2[i], sizeof(samochod));
cout<<"Odczyt pliku - zakonczony pomyslnie"<<endl;
getch();
}
for (i=0;i<liczba_samochodow;i++)
{
tablica2[i].pokaz();
cout<<"----------------------------------------------"<<endl;
getch();
}
plik2.open( "dane.bin", ios::ate);
if( plik2.good() == true )
plik2.seekp (4 * sizeof (samochod)); a
plik2.read ((char *) &tablica2[i], sizeof(samochod));
plik2.seekp (-(sizeof (samochod)),ios::cur);
plik2.write ((char *) &tablica2[i], sizeof(samochod));
plik2.close();
cout<<"Nacisnij enter, aby zakonczyc program"<<endl;
getch();
}