Cod sursa(job #1345453)

Utilizator gabriel93Robu Gabriel gabriel93 Data 17 februarie 2015 17:10:34
Problema Convertor Scor 90
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 1.33 kb
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    fstream fin,fout;
    fin.open("convertor.in",fstream::in);
    fout.open("convertor.out",fstream::out);

    vector<string> Values;
    bool KeysFlag = true;
    int nKeys = 0;

    do {
        string s;
        getline(fin,s,'}');

        string value;
        bool flag = true;
        for(size_t i=0;i<s.size();++i)
            if( (s[i]!='[' && s[i]!=']' && s[i]!='{' && s[i]!='}' && s[i]!=':' && s[i]!='"' && s[i]!=' ' && s[i]!=',' && s[i]!='\n') || (!value.empty() && s[i]==' ') ) {
                value.push_back(s[i]);
            }
            else if(!value.empty()) {
                if(flag) {
                    if(KeysFlag) {
                        fout << value << ',';
                        ++nKeys;
                    }
                    flag = false;
                }
                else {
                    Values.push_back(value);
                    flag = true;
                }
                value.clear();
            }
        KeysFlag = false;
    }while(!fin.eof());

    fout << '\n';

    for(size_t i=0;i<Values.size();++i) {
        fout << Values[i] << ',';
        if(i%nKeys == nKeys-1)
            fout << '\n';
    }

    return 0;
}