Cod sursa(job #1342629)

Utilizator CatalinOlaruCatalin Olaru CatalinOlaru Data 14 februarie 2015 12:28:42
Problema Convertor Scor 90
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.81 kb
#include<stdio.h>
#include<ctype.h>
int main()
{
	FILE * f;
	f=fopen("convertor.in","rt");
	FILE * out;
	out=fopen("convertor.out","wt");
	fseek(f, 0, SEEK_END);
	int size=ftell(f);
	fseek(f,0,0);
	char c;
	fread(&c,1,1,f);
	int i=0,j=0;
	j=size;
	int poz=0;
	while(poz<size)
	{	
		fread(&c,1,1,f);poz++;
		if(c=='{')
		{
			i=0;
			while(c!='}')
			{
				fread(&c,1,1,f);poz++;
				if(c=='"')
				{
					i++;
					fread(&c,1,1,f);poz++;
					if((i & 1) > 0)
					{	
						while(c!='"')
						{	
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);poz++;
						}
						fwrite(",",1,1,out);
					}
					else
					{
						while(c!='"')
						{	
							fread(&c,1,1,f);poz++;
						}
					}
				}
				else if(isdigit(c))
				{	i++;
					if((i & 1 )> 0)
					{	
						while(isdigit(c))
						{
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);poz++;
						}
						fwrite(",",1,1,out);
					}
					else
					{
					while(isdigit(c))
						{
						
							fread(&c,1,1,f);poz++;
						}
					}
				}
			}size=ftell(f);
		fwrite("\n",1,1,out);
		}
	}
	size=j;
	fseek(f,0,0);poz=0;
	while(poz<size)
	{	
		fread(&c,1,1,f);poz++;
		if(c=='{')
		{
			i=0;
			while(c!='}')
			{
				fread(&c,1,1,f);poz++;
				if(c=='"')
				{
					i++;
					fread(&c,1,1,f);poz++;
					if((i & 1) == 0)
					{	
						while(c!='"')
						{	
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);poz++;
						}
						fwrite(",",1,1,out);
					}
					else
					{
						while(c!='"')
						{	
							fread(&c,1,1,f);poz++;
						}
					}
					
				}
				else if(isdigit(c))
				{	i++;
					if((i & 1 ) == 0)
					{	
						while(isdigit(c))
						{
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);poz++;
						}
						fwrite(",",1,1,out);
					}
					else
					{
					while(isdigit(c))
						{
						
							fread(&c,1,1,f);poz++;
						}
					}
				}
			}
		fwrite("\n",1,1,out);
		}
	}
}