Меню
Категории
Задача №3
15 апреля, 2008 Задачки

Задача — считать в буфер заданный текстовый файл и подсчитать в нем количество строк, слов и символов;

Для того, чтобы сосчитать количество символов, нужно просто каждый последующий байт в файле сравнивать с заданным алфавитом. Для подсчета слов, достаточно сосчитать пробелы и точки. А для подсчета строк символ перехода строки.

#include <iostream.h>
#include <conio.h>

int main(int argc, char* argv[])
{
char *buf;
FILE *f;
int line = 0,word = 0;
if ((f = fopen(“1.txt”,”r”))== NULL)
{
printf(“Cannot open input file.\n”); // Не могу открыть, бля.
getch();
return 1;
}

long curpos, length;
curpos = ftell(f);
fseek(f, 0L, SEEK_END);
length = ftell(f);//Узнаем размер файла
fseek(f, curpos, SEEK_SET);
printf(“Filesize is %ld bytes\n”, length);

buf = new char [length]; // Cоздаем буфер для файла с его размером.
fread(buf,length,1,f); // Cчитывваем 1 блок размеров с размер файла.

for(int i=0;i<length;i++) //В цикле выводим все.
{
if(buf[i] == ‘ ‘) word++;
if(buf[i] == ‘\n’) line++;
}

cout<<“\n\n——————“;
cout<<“\nSymbols – “<<length;
cout<<“\nWords – “<<word+1;
cout<<“\nLines – “<<line+1;
getch();
return 0;
}

Добавить комментарий




*