Cod sursa(job #1343460)

Utilizator CatalinOlaruCatalin Olaru CatalinOlaru Data 15 februarie 2015 15:01:27
Problema Convertor Scor 90
Compilator c Status done
Runda rosedu_cdl_2015 Marime 3.31 kb
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
int main()
{
    FILE * f;
    f=fopen("convertor.in","rt");
    FILE * out;
    out=fopen("convertor.out","wt");
    fseek(f, 0, SEEK_END);
    int size=ftell(f);
    fseek(f,0,0);
    char c;
    fread(&c,1,1,f);
    int i=0,j=0;
    j=size;
    while(ftell(f)<size)
    {  
        fread(&c,1,1,f);
        if(c=='{')
        {
            i=0;
            while(c!='}')
            {
                fread(&c,1,1,f);
                if(c=='"')
                {
                    i++;
                    fread(&c,1,1,f);
                    if((i & 1) > 0)
                    {  
                        while(c!='"')
                        {  
                            fwrite(&c,1,1,out);
                            fread(&c,1,1,f);
                        }
                        fwrite(",",1,1,out);
                    }
                    else
                    {
                        while(c!='"')
                        {  
                            fread(&c,1,1,f);
                        }
                    }
                }
                else if(isdigit(c))
                {   i++;
                    if((i & 1) > 0)
                    {  
                        while(isdigit(c))
                        {
                            fwrite(&c,1,1,out);
                            fread(&c,1,1,f);
                        }
                        fwrite(",",1,1,out);
                    }
                    else
                    {
                    while(isdigit(c))
                        {
                         
                            fread(&c,1,1,f);
                        }
                    }
                }
            }size=ftell(f);
        fwrite("\n",1,1,out);
        }
    }
    size=j;
    fseek(f,0,0);
    while(ftell(f)<size)
    {  
        fread(&c,1,1,f);
        if(c=='{')
        {
            i=0;
            while(c!='}')
            {
                fread(&c,1,1,f);
                if(c=='"')
                {
                    i++;
                    fread(&c,1,1,f);
                    if((i & 1) == 0)
                    {  
                        while(c!='"')
                        {  
                            fwrite(&c,1,1,out);
                            fread(&c,1,1,f);
                        }
                        fwrite(",",1,1,out);
                    }
                    else
                    {
                        while(c!='"')
                        {  
                            fread(&c,1,1,f);
                        }
                    }
                     
                }
                else if(isdigit(c))
                {   i++;
                    if((i & 1) == 0)
                    {  
                        while(isdigit(c))
                        {
                            fwrite(&c,1,1,out);
                            fread(&c,1,1,f);
                        }
                        fwrite(",",1,1,out);
                    }
                    else
                    {
                    while(isdigit(c))
                        {
                         
                            fread(&c,1,1,f);
                        }
                    }
                }
            }
        fwrite("\n",1,1,out);
        }
    }
}