Правый край максимального ряда
#pragma warning(disable : 4996)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
int MaxString(FILE *fp) //Поиск максимально длинной строки
{
int i=0,tmp=0;
int size=1;
int max=0;
char *str=(char*)calloc(1,sizeof(char));
while(!feof(fp))
{
str[size-1] = fgetc(fp);
str[size]='\0';
if(str[size-1]!='\n')
{
tmp++;
if (str[size]=='\0')
str=(char*)realloc(str,++size);
}
else
{
if(max<=tmp)
{
max=tmp;
tmp=0;
size=1;
}
else
{
tmp=0;
size=1;
}
}
}
if (max<=tmp)
max=tmp;
free(str);
rewind(fp);
return max;
}
void RightString(FILE *fp, int max,char nF[])
{
char *str=(char*)calloc(1,sizeof(char));
char *tmpStr=(char*)calloc(max,sizeof(char));
int size =1;
int tmp=0,i=0;
int j=0;
FILE *fget;
fget=fopen("tmp.txt","a+");
while(!feof(fp))
{
str[size-1] = fgetc(fp);
str[size]='\0';
if(str[size-1]!='\n'&&!feof(fp))
{
if (str[size]=='\0')
str=(char*)realloc(str,++size);
}
else
{
char *tmpStr=(char*)calloc(max,sizeof(char));
while(i<max)
{
if ((max-size-1-i)>0)
{
tmpStr[i]=' ';
i++;
}
else
{
strcat(tmpStr,str);
printf(tmpStr);
i=max;
fputs(tmpStr,fget);
}
}
i=0;
size=1;
tmpStr=" ";
}
}
fclose(fget);
}
int main(int argc, char *argv[])
{
FILE *fp;
int max;
char nameFile[]={"text.txt"};
if((fp=fopen(nameFile, "r"))==NULL)
return 0;
max = MaxString(fp);
RightString(fp, max,nameFile);
getch();
return 0;
}
Комментарии:
Нету комментариев для вывода...