Cod sursa(job #1347623)

Utilizator andreipurdilaAndrei Purdila andreipurdila Data 19 februarie 2015 02:30:26
Problema Convertor Scor 100
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 0.98 kb
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <ctype.h>

using namespace std;


int main()
{
	
	
	ifstream f("convertor.in");
	ofstream g("convertor.out");
	string key;
	char p;
	bool op = false;
	int keys_nr = 0;
	
	while (p != '}' && f.peek() != EOF){
		f.get(p);
		if (p == '"' && !op){
			op = true;
			f.get(p);
		}
		if (p != '"' && op){
			key.push_back(p);
			
		}
		if (p == '"' && op){
			op=false;
			g<<key<<",";
			keys_nr++;
			key.clear();
			while (p !=',' && p != '}' && f.peek() != EOF)
				f.get(p);
		}
	}
	
	g<<"\n";
	f.seekg(0,f.beg);
	key.clear();
	int val_nr = 0;
	while (f.peek() != EOF){
		
		while (p != ':' && f.peek() != EOF)
			f.get(p);
		if (f.peek() == EOF)
			break;
		f.get(p);
		while (!isalnum(p))
			f.get(p);
		while (p != '"' && p != ',' && p != '}' && p != '\n'){
			key.push_back(p);
			f.get(p);
		}
		if (val_nr == keys_nr)
			g<<"\n",val_nr = 0;
		g<<key<<",";
		key.clear();
		val_nr++;
	}

	g.close();
	return 0;
}