Cod sursa(job #1343444)

Utilizator CatalinOlaruCatalin Olaru CatalinOlaru Data 15 februarie 2015 14:50:41
Problema Convertor Scor 90
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.72 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=size;
	while(ftell(f)<size)
	{	
		fread(&c,1,1,f);
		if(c=='{')
		{
			i=0;
			while(c!='}')
			{
				fread(&c,1,1,f);
				if(c=='"')
				{	
					i++;
					fread(&c,1,1,f);
					if((i & 1) > 0)
					{	
						while(c!='"')
						{	
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);
						}
						fwrite(",",1,1,out);
					}
					else
					{
						while(c!='"')
						{	
							fread(&c,1,1,f);
						}
					}
				}
				else if(isdigit(c))
				{	i++;
					if((i & 1 )> 0)
					{	
						while(isdigit(c))
						{
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);
						}
						fwrite(",",1,1,out);
					}
					else
					{
					while(isdigit(c))
						{
						
							fread(&c,1,1,f);
						}
					}
				}
			}
		size=1;
		fwrite("\n",1,1,out);
		}
	}
	size=j;
	fseek(f,0,0);
	while(ftell(f)<size)
	{	
		fread(&c,1,1,f);
		if(c=='{')
		{
			i=0;
			while(c!='}')
			{
				fread(&c,1,1,f);
				if(c=='"')
				{
					i++;
					fread(&c,1,1,f);
					if((i & 1) == 0)
					{	
						while(c!='"')
						{	
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);
						}
						fwrite(",",1,1,out);
					}
					else
					{
						while(c!='"')
						{	
							fread(&c,1,1,f);
						}
					}
					
				}
				else if(isdigit(c))
				{	i++;
					if((i & 1 ) == 0)
					{	
						while(isdigit(c))
						{
							fwrite(&c,1,1,out);
							fread(&c,1,1,f);
						}
						fwrite(",",1,1,out);
					}
					else
					{
					while(isdigit(c))
						{
						
							fread(&c,1,1,f);
						}
					}
				}
			}
		fwrite("\n",1,1,out);
		}
	}
	
}