Cod sursa(job #1360590)

Utilizator AndlolAndrei Apostoiu Andlol Data 25 februarie 2015 16:41:05
Problema Convertor Scor 100
Compilator c Status done
Runda rosedu_cdl_2015 Marime 0.91 kb
#include <stdio.h>

#define BUFFER_SIZE 1024

int main() {
	FILE *in;
	FILE *out;
	char buffer[BUFFER_SIZE];
	char stop;
	int val;

	in  = fopen("convertor.in",  "r");
	out = fopen("convertor.out", "w");

	// Citeste chei
	fscanf(in, " [ { ");
	while (1) {
		if (fscanf(in, " \" %[^\"]s \" : ", buffer) <= 0) {
			break;
		}
		fprintf(out, "%s,", buffer);
		fscanf(in, " %*[^,] , ");
	}
	fprintf(out, "\n");

	// Get values
	fseek(in, 0, SEEK_SET);
	fscanf(in, " [ { ");
	while(1) {
		stop = 0;
		while(1) {
			if (fscanf(in, " \" %[^\"]s ", buffer) <= 0) {
				break;
			}
			stop = 1;

			if (fscanf(in, " \" :  %d ", &val) <= 0) {
				fscanf(in, " \" : \" ");
				fscanf(in, " %[^\"]s ", buffer);
				fscanf(in, " \" ");
			} else {
				sprintf(buffer, "%d", val);
			}

			fprintf(out, "%s,", buffer);
			fscanf(in, " , ");
		}

		if (stop == 0) {
			break;
		}

		fscanf(in, " } , {");
		fprintf(out, "\n");
	}

	return 0;
}