Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / C++.Ашарина / !Сделанные / Перегрузка / var12 / Текстовый документ
.txt#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--);
}