Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / C++.Ашарина / !Сделанные / Lab4 / var12 / Файлы2 / Сделанная!!!!!!!!

.txt
Скачиваний:
29
Добавлен:
17.04.2013
Размер:
1.61 Кб
Скачать
#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;

}
Соседние файлы в папке Файлы2