#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#include <locale.h>
#define N 500
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"Russian");
FILE *file, *file2 ;
long int end; /* ïðèçíàê êîíöà ôàéëà */
int i=0; /* èíäåêñ ñòðîêè */
int COLVOslov=0, MAXslov=0; /* COLVOslov-ñ÷åòêèê êîë-âà ñëîâ â ñòðîêå, MAXslov-ìàêñèìàëüíîå êîë-âî ñëîâ â ñòðîêå*/
char si; /* ïîñèìâîëüíîå ñ÷èòûâàíèå èç ôàéëà */
char *pi; /* óêàçàòåëü äëÿ strtok */
char Vstr[N]="\0", MAXstr[N]="\0",strWithMaxSlov[N]="\0"; /* âðåìåííàÿ ñòðîêà, ìàêñèìàëüàÿ ñòðîêà, ñòðîêà ñ ìàêñèìàëüíûì êîë-âîì ñëîâ*/
fpos_t posN,posNMAX;
/* ðîçîâàÿ ìèëîòà */
HANDLE consoleOutput;
consoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(consoleOutput, 1 | FOREGROUND_RED | FOREGROUND_INTENSITY);
file = fopen("cisla.txt", "r+");
fseek(file , 0, SEEK_END );
end = ftell(file);
fseek(file , 0, SEEK_SET );
fgetpos(file, &posN);
while( (si=fgetc(file))!=EOF )
{
if (si!='.')
{ // проверка на \n
Vstr[i]=si;
i++;
}
else
{
Vstr[i]='\0';
i=0;
if(strlen(Vstr)>strlen(MAXstr))
strcpy(MAXstr,Vstr);
pi=strtok(Vstr," ,/|\()");
while(pi)
{
COLVOslov++;
pi=strtok(NULL," ,/|\()");
}
if(COLVOslov>MAXslov)
{
MAXslov=COLVOslov;
posNMAX=posN;
}
fgetpos(file, &posN);
COLVOslov=0;
}
}
i=0;
fsetpos(file,&posNMAX);
while((si=getc(file))!='.')
{ // проверка на \n
strWithMaxSlov[i]=si;
i++;
}
file2 = fopen("sliv.txt", "w+");
if(file2 != NULL)
{
fprintf(file2, "Самая длинная строка: \n %s\n", MAXstr);
fprintf(file2, "Максимальное количество слов: \n %s\n",strWithMaxSlov);
}
puts(Vstr);
fclose(file);
return 0;
}