Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / C++.Ашарина / !Сделанные / Lab4 / var12 / Файлы2 / Сделанная!!!!!!!!
.txt#include <fstream.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class bin_stream:public fstream
{
public:
bin_stream(const char *fn): fstream(fn, ios::out | ios::in | ios::binary) {}
void doneOurDate(const void*, int, int);
bin_stream &operator<<(int d) {
doneOurDate(&d, sizeof(d),0);
return *this;
}
bin_stream &operator>>(int &d) {
doneOurDate(&d, sizeof(d),1);
return *this;
}
};
void bin_stream::doneOurDate(const void *Ptr, int len, int sign) {
if (!Ptr) return;
if (len <= 0) return;
if (sign==0)
write((char*)Ptr, len);
else
read((char*)Ptr, len);
}
int main()
{ int f;
const int n=20;
bin_stream bin_out("Bin.dat");
if (!bin_out) {
cerr << "Unable to write to Bin.dat" << endl;
exit(1);
}
cout << "This is your file:" << endl;
for (int i = 0; i < n; i++) {
f = rand()/1000;
bin_out << f;
cout << f << " ";
}
bin_out << '\n';
cout << endl;
bin_out.seekp(0, ios::beg); //predpologim, chto ne znaem razmer file, poschitaem ego
int krat=0;
int chislo;
while(1){ krat++;
bin_out >>f;
if( f=='\n' ) break;
if(krat%7==0){
bin_out.seekp(-1*sizeof(int),ios::cur);
cout<<"Vvedite chislo ";
cin>>chislo;
bin_out << chislo;
}
}
cout << "File posle modifikacii: " << endl;
bin_out.seekp(0, ios::beg);
while(1){
bin_out >> f;
if( f=='\n' ) break;
cout << f <<' ';
}
getch();
return 0;
}