Pagini recente » Cod sursa (job #2617985) | Cod sursa (job #3153397) | Monitorul de evaluare | Cod sursa (job #1359751) | Cod sursa (job #1361208)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fstream>
#include <string>
using namespace std;
ifstream f("convertor.in");
ofstream g("convertor.out");
int main()
{
string *s;
long int dim;
long int i;
string *doi;
int ok = 0;
int cadru = 0;
int sir = 0;
f.seekg(0,f.end);
dim = f.tellg();
f.seekg(0,f.beg);
char *aux = new char[dim];
f.read(aux,dim);
s = new string (aux);
doi = new string;
delete[] aux;
i = 0;
while (i != s->size() - 1)
{
switch (cadru)
{
case 0:
while (s->at(i) != '"' && i != s->size() - 1)
{
if (s->at(i) == '}' && ok == 0)
{
ok = 1;
g<<'\n'<<*doi;
}
if (s->at(i) == '{' && ok == 1)
g<<'\n';
i++;
}
cadru = 1;
break;
case 1:
while (s->at(i) != '"' && i != s->size() - 1)
i++;
i++;
while (s->at(i) != '"' && i != s->size() - 1)
{
if (ok == 0)
g<<s->at(i);
i++;
}
cadru = 2;
if (ok == 0)
g<<',';
i++;
break;
case 2:
while (s->at(i) != '"' && (s->at(i) < '0' || s->at(i) > '9') && i != s->size() - 1)
i++;
if (s->at(i) == '"') sir = 1;
cadru = 3;
break;
case 3:
if (sir == 1)
{
sir = 0;
i++;
while (s->at(i) != '"')
{
if (ok == 0)
doi->push_back(s->at(i));
else g<<s->at(i);
i++;
}
i++;
}
else
{
while (s->at(i) >= '0' && s->at(i) <= '9' && i != s->size() - 1)
{
if (ok == 0)
doi->push_back(s->at(i));
else g<<s->at(i);
i++;
}
}
if (ok == 0)
doi->push_back(',');
else
g<<',';
cadru = 0;
break;
}
}
g<<'\n';
f.close();
g.close();
return 0;
}