Cod sursa(job #1357754)

Utilizator edigiorgiEdi Georgi edigiorgi Data 24 februarie 2015 05:02:10
Problema Convertor Scor 40
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 2.37 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <string>
#include<stdio.h>

using namespace std;

int main()
{
	FILE *g;
	g = fopen("convertor.out", "w");
	FILE *f;
	f = fopen("convertor.in", "r");
	string s;
	char c;
	int cont2 = 0;
	c = fgetc(f);
	while (c != '}')
	{
		if (c == '"')
		{
			cont2 = (cont2 + 1) % 2;
			if (cont2)
			{
				char x;
				x = fgetc(f);
				while (x != '"')
				{
					fputc(x, g);
					x = fgetc(f);
				} 
				fputc(',', g);

			}
			else
			{
				char x;
				x = fgetc(f);
				while (x != '"')
				{
					s += x;
					x = fgetc(f);
				}
				s += ',';
/*				char x;
				do
				{
					x = fgetc(f);
					s += x;
				} while (x != '"');
				s += ',';
*/
			}

		}
		else if (((c - '0') < 10) && (c - '0' >= 0))
		{
			cont2 = (cont2 + 1) % 2;
			s += c;
			char x;
			x = fgetc(f);
			while ((x - '0' >= 0) && ('9' - x < 10))
			{
				s += x;
				x = fgetc(f);
			}
			s += ',';
		}
		c = fgetc(f);
	}

	fputc('\n', g);
//	f.clear();
//	f.seekg(0);
//	rewind(f);
	fputs(s.c_str(), g);
	fputc('\n', g);
	c = fgetc(f);
	while (c != EOF)
	{
		if (c == '{')
		{
			s.clear();
			cont2 = 0;
			while (c != '}')
			{
				if (c == '"')
				{
					cont2 = (cont2 + 1) % 2;
					if (cont2 == 0)
					{
						char x;
						x = fgetc(f);
						while (x != '"')
						{
							s += x;
							x = fgetc(f);
						}
						s += ',';

						/*char x;
						x = fgetc(f);
						while (x != '"')
						{
							fputc(x, g);
							x = fgetc(f);
						}
						fputc(',', g);
						*/
					}
					else
					{
						char x;
						do
						{
							x = fgetc(f);
						} while (x != '"');
					}

				}
				else if (((c - '0') < 10) && (c - '0' >= 0))
				{
					cont2 = (cont2 + 1) % 2;
					if (cont2 == 0)
					{

						cont2 = (cont2 + 1) % 2;
						s += c;
						char x;
						x = fgetc(f);
						while ((x - '0' >= 0) && ('9' - x < 10))
						{
							s += x;
							x = fgetc(f);
						}
						s += ',';

						/*fputc(c, g);
						char x;
						x = fgetc(f);
						while ((x - '0' >= 0) && ('9' - x < 10))
						{
							fputc(x, g);
							x = fgetc(f);
						}
						fputc(',', g);*/
					}

				}
				c = fgetc(f);
			}
			fputs(s.c_str(), g);
			fputc('\n', g);
		}
		c = fgetc(f);
	}

	fclose(f);
	fclose(g);
	return 0;
}