Cod sursa(job #1354542)

Utilizator liviudanSarariu Liviu - Dan liviudan Data 21 februarie 2015 21:13:47
Problema Convertor Scor 0
Compilator c Status done
Runda rosedu_cdl_2015 Marime 2.75 kb
#include <stdio.h>

int main()
{
    char a,b[20][20],c;
    int i=0,j=0;
    FILE *f_in,*f_out;
    f_in=fopen("convertor.in","r");
    f_out=fopen("convertor.out","w");
    fscanf(f_in,"%c",&a);
    while(a!='}')
    {
        if(a=='"')
        {
            fscanf(f_in,"%c",&a);
            while(a!='"')
            {
                fprintf(f_out,"%c",a);
                fscanf(f_in,"%c",&a);
            }
            fscanf(f_in,"%c",&a);
            fprintf(f_out,",");
            while(a!=':')
                fscanf(f_in,"%c",&a);
            fscanf(f_in,"%c",&a);
            while(a==' ')
                fscanf(f_in,"%c",&a);
            if(a=='"')
            {
                fscanf(f_in,"%c",&a);
                while(a!='"')
                {
                    b[i][j]=a;
                    j++;
                    fscanf(f_in,"%c",&a);
                }
                fscanf(f_in,"%c",&a);
                b[i][j]=',';
                j++;
                b[i][j]='\0';
            }
            else
            {
                while(a!=',')
                {
                    b[i][j]=a;
                    j++;
                    fscanf(f_in,"%c",&a);
                }
                b[i][j]=a;
                j++;
                fscanf(f_in,"%c",&a);
                b[i][j]='\0';
            }
            i++;
            j=0;
        }
        else
        {
            while(a!='"' && a!='}')
            {
                fscanf(f_in,"%c",&a);
            }
        }

    }
    fprintf(f_out,"\n");
    for(j=0;j<i;j++)
        fprintf(f_out,"%s",b[j]);
    while(a!=']' || !feof(f_in))
    {
        if(a!='{')
            fscanf(f_in,"%c",&a);
        else
        {
            fprintf(f_out,"\n");
            while(1)
            {
                while(a!=':' && a!='}')
                    fscanf(f_in,"%c",&a);
                if(a=='}')
                    break;
                fscanf(f_in,"%c",&a);
                while(a==' ')
                    fscanf(f_in,"%c",&a);
                if(a=='"')
                {
                    fscanf(f_in,"%c",&a);
                    while(a!='"')
                    {
                        fprintf(f_out,"%c",a);
                        fscanf(f_in,"%c",&a);
                    }
                    fprintf(f_out,",");
                }
                else
                {
                    while(a!=',')
                    {
                        fprintf(f_out,"%c",a);
                        fscanf(f_in,"%c",&a);
                    }
                    fprintf(f_out,"%c",a);
                }
            }
        }
    }

    fclose(f_in);
    fclose(f_out);
    return 0;
}