Cod sursa(job #1343449)

Utilizator CatalinOlaruCatalin Olaru CatalinOlaru Data 15 februarie 2015 14:55:05
Problema Convertor Scor 90
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.71 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);
	char i=0;int 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= i^1;
					fread(&c,1,1,f);
					if(i==1)
					{	
						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=i^1;
					if(i==1)
					{	
						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=i ^ 1;
					fread(&c,1,1,f);
					if(i == 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= i ^ 1;
					if(i == 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);
		}
	}
	
}