pdmiana danych w pliku

0

Witam mam takie pytanko: mam sobie klasę punkt i tworze sobie tablice dynamiczna obiektów tej klasy, następnie zapisuje ta tablice do plików txt i bin. Pytanie brzmi jak teraz podmienić któryś z punktów w tych plikach?
oto kod:

#include<iostream.h>
#include<fstream.h>
class punkt {
private:
protected:
double x,y,z;
friend ostream& operator<<(ostream&,const punkt&);
friend istream& operator>>(istream&, punkt&);
public:
punkt (double=0, double=0, double=0);
~punkt ();
double getx ();
double gety ();
double getz ();
punkt& set (double, double, double);
void wypisz ();
};
punkt::punkt (double a, double b, double c):x(a) , y(b), z(c){
	cout<<"konstruktor klasy punkt\n";
}
punkt::~punkt(){
	cout<<"destruktor klasy punkt\n";
}
double punkt::getx (){
	double tmp = this->x;
	return tmp;
}
double punkt::gety (){
	double tmp = this->y;
	return tmp;
}
double punkt::getz (){
	double tmp = this->z;
	return tmp;
}
punkt& punkt::set (double a, double b, double c){
	this->x = a;
	this->y = b;
	this->z = c;
	return (*this);
}
void punkt::wypisz (){
	cout<<"parametry punktu: \nx = "<<this->x<<"\ny = "<<this->y<<"\nz = "<<this->z<<endl;
}
ostream& operator<<(ostream& out,const punkt& g){
	out<<g.x<<g.y<<g.z;
	return out;
}
istream& operator>>(istream& in, punkt& g){
	in>>g.x>>g.y>>g.z;
	return in;
}


int main(int argc, char* argv[])
{
int n=0;
cout<<"podaj n:";
cin>>n;
punkt* t = new punkt[n];
for (int i = 0; i < n; i++) {
cin>>t[i];
}

fstream fs ("c:\\plik.txt",ios::out);
for (int i = 0; i < n; i++) {
	fs<<t[i];
}
fs.close();
fs.open("c:\\plik.000",ios::out|ios::binary);
if (fs){
	for (int i = 0; i < n; i++) {
		fs.write((char*)&t[i],sizeof(punkt));
	}
}
fs.close();
delete[] t;
t = new punkt[n];
fs.open("c:\\plik.000",ios::nocreate|ios::in|ios::binary);
if (fs){
	for (int i =0; i<n; i++ ){
		fs.read((char*)&t[i],sizeof(punkt));
	 }
}
for (int i = 0; i < n; i++) {
	t[i].wypisz();
}


system("pause");
}
0

skorzystaj z seekp (do zapisu) lub seekg do oczytu.

przejedz sobie nim do n tego elementu
będzie to sizeof(element)*n ;
i sobie odczytaj :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1