Составители:
Рубрика:
64
class Text //класс «текстовый буфер»
{ protected:
int n,UsedN; //n-количество строк в буфере, UsedN – количество реально используемых
//строк буфера
char **str; //указатель на начало буфера в памяти
public:
Text(int ); //конструктор
~Text(); //деструктор
void Read(char *filename); //функция чтения информации из файла в буфер
void Write(); //функция вывода информации из буфера на экран
};
Text::Text(int k) //конструктор динамически выделяет память под k строк…
{ n=k;UsedN=0;
str=new char*[n];
for(int i=0;i<n;i++)
str[i]=new char[80]; //…в каждой строке 80
символов
}
Text::~Text() //деструктор освобождает динамическую память из под буфера
{ for(int i=0;i<n;i++)
delete [] str[i];
delete [] str;
}
void Text::Read(char * filename)
{ UsedN=0;
FILE * fp;
if ((fp=fopen(filename,"r"))!=NULL) //открываем файл
{ while(!feof(fp)&&UsedN<n) //пока не конец файла или не заполнен весь буфер…
{ fgets(str[UsedN],80,fp); //считываем очередную строку из файла в буфер
UsedN++;
}
for(int i=0;i<UsedN;i++)
for (int j=0;j<80;j++)
if (str[i][j]=='\n')
{for(int k=j;k<80;k++)
str[i][k]=' '; //пробелами заполняем неиспользуемую часть буфера
break;}
fclose(fp);
}
else {strcpy(str[0],"Ошибка открытия файла"); //если открыть указанный файл
//не удалось записываем информацию
об этом в буфер
for(int k=strlen(str[0]);k<80;k++)
str[0][k]=' ';
UsedN=1;
}}
void Text::Write() //функция постраничного вывода информации из буфера на экран
{if (UsedN)
{clrscr();
int i=0,ii=1;
while(i<UsedN)
class Text //класс «текстовый буфер» { protected: int n,UsedN; //n-количество строк в буфере, UsedN – количество реально используемых //строк буфера char **str; //указатель на начало буфера в памяти public: Text(int ); //конструктор ~Text(); //деструктор void Read(char *filename); //функция чтения информации из файла в буфер void Write(); //функция вывода информации из буфера на экран }; Text::Text(int k) //конструктор динамически выделяет память под k строк… { n=k;UsedN=0; str=new char*[n]; for(int i=0;i
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »