C#

Правый край максимального ряда

#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;
}

Добавлено: 15 Июня 2014 11:14:04 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...