Задача — считать в буфер заданный текстовый файл и подсчитать в нем количество строк, слов и символов;
Для того, чтобы сосчитать количество символов, нужно просто каждый последующий байт в файле сравнивать с заданным алфавитом. Для подсчета слов, достаточно сосчитать пробелы и точки. А для подсчета строк символ перехода строки.
#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;
}
Написать комментарий