Cod sursa(job #1341710)

Utilizator RaduDoStochitoiu Radu RaduDo Data 13 februarie 2015 00:33:12
Problema Convertor Scor 60
Compilator c Status done
Runda rosedu_cdl_2015 Marime 1.48 kb
#include<stdio.h>

int main()
{
	FILE *f, *f2;
	char c, c2;
	f = fopen("convertor.in", "rt");
	f2 = fopen("convertor.out", "wt");
	while(1)
	{
		fread(&c, sizeof(c), 1, f);
		if(c == '"') while(1)
		{
			fread(&c, sizeof(c), 1, f);
			if(c == '"')
			{
				c2 = ',';
				fwrite(&c2, sizeof(c2), 1, f2);
				break;
			}
			fwrite(&c, sizeof(c), 1, f2);
		}
		else if(c == '}')
		{
			c2 = '\n';
			fwrite(&c2, sizeof(c2), 1, f2);
			break;
		}
		else if(c == ':') while(1)
		{
			fread(&c, sizeof(c), 1, f);
			if(c == ',' || c == '}') break;
		}
		if(c == '}') break;
	}
	c2 = '\n';
	fwrite(&c2, sizeof(c2), 1, f2);
	fseek(f, 0, SEEK_SET);
	while(1)
	{
		fread(&c, sizeof(c), 1, f);
		if(c == ']') break;
		else if(c == '}')
		{
			c2 = '\n';
			fwrite(&c2, sizeof(c2), 1, f2);
			while(1)
			{
				fread(&c, sizeof(c), 1, f);
				if(c == '{' || c == ']') break;
			}
		}
		else if(c == ':')
		{
			while(1)
			{
				fread(&c, sizeof(c), 1, f);
				if(c != ' ') break;
			}
			if(c != '"')
			{
				fwrite(&c, sizeof(c), 1, f2);
				while(1)
				{
					fread(&c, sizeof(c), 1, f);
					if(c < '0' || c > '9')
					{
						c2 = ',';
						fwrite(&c2, sizeof(c2), 1, f2);
						break;
					}
					fwrite(&c, sizeof(c), 1, f2);
				}
			}
			else
			
				while(1)
				{
					fread(&c, sizeof(c), 1, f);
					if(c == '"')
					{
						c2 = ',';
						fwrite(&c2, sizeof(c2), 1, f2);
						break;
					}
					fwrite(&c, sizeof(c), 1, f2);
				}
			}
		if(c == ']') break;
	}
	fclose(f); fclose(f2);
	return 0;
}