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

Лабы / C++.Ашарина / !Сделанные / Перегрузка / var12 / Текстовый документ

.txt
Скачиваний:
27
Добавлен:
17.04.2013
Размер:
1.52 Кб
Скачать
#include <stdio.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>

class file
{
	char *name;	// имя файла
	FILE *f;	// указатель на поток
	public:
	file (char *, char *);	// конструктор
	file &operator=(file &);	// операция копирования файлов
	friend char* operator--(file &);	// операция поиска наименьшей строки
	~file()	// деструктор
	{
	fclose(f);delete name;
	};
};



file::file(char *n, char *attr)	//конструктор - открывает файл
{
	name = new char[strlen(n)+1];
	strcpy (name, n);
	f=fopen (name, attr);
}
file& file::operator=(file &f1) 	//операция копирования файла
{
	char stroka[120];
	fseek (f1.f,0,0);
	while (fgets (stroka, 120, f1.f))
	fputs (stroka, f);
	return *this;
}
char* operator--(file &f1)	//дружественная операция поиска наименьшей строки в файле
{
	fseek(f1.f, 0, 0);
	char *sent=new char[120];
	unsigned int minlen=120;
	char stroka[120];
	while (fgets(stroka, 120, f1.f))
	if (strlen(stroka)<minlen)
	{
	minlen = strlen(stroka);
	strcpy (sent, stroka);
	}
	return sent;
}


void main(void)
{    
	const char *test1="test1.txt";
    const char *test2="test2.txt";
	char gg;
	ifstream fin;
     fin.open(test1);
	 ofstream fout(test2, ios::out | ios::app);
	 while (fin.get(gg)) fout<<gg;
     
	 fout.close();

//	file f1("test1.txt", "rt"),	// открытие файла для чтения
//	f2("test2.txt", "wt");	// открытие файла для записи
//	f2 = f1;	//копирование файлов
//	printf("Самая короткая строка = %s\n",f2--);
}

Соседние файлы в папке var12