Cod sursa(job #1360601)

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

#define BUFFER_SIZE 1024

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

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

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

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

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

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

		if (stop == 0) {
			break;
		}

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

	return 0;
}