Pagini recente » Cod sursa (job #338095) | Cod sursa (job #1032875) | Cod sursa (job #932827) | Cod sursa (job #1287233) | Cod sursa (job #1334212)
// Sursa Adei cu citire din stdio
// Scrierea inca e cu streamuri
#include <fstream>
#include <string>
#include <cstdio>
using namespace std;
int main() {
ofstream g;
FILE * pIn = fopen("convertor.in", "r");
g.open("convertor.out");
// identificare chei
char c;
string buffer;
int pos;
int state = 0;
while ((c = fgetc(pIn)) && c != EOF && (c!='}')) {
if ((c == '[') && (state == 0))
state = 1;
else if ((c == '{') && (state == 1))
state = 2;
else if ((c == '\"') && (state == 2))
state = 3;
else if ((c == '\"') && (state == 3)) {
state = 2;
g << buffer << ",";
buffer = "";
} else if ((c == ':') && (state == 2))
state = 4;
else if ((c == ',') && (state == 4))
state = 2;
else if (state == 3)
buffer += c;
}
g<<"\n";
fseek(pIn, 0, SEEK_END);
rewind(pIn);
state = 0;
while ((c = fgetc(pIn)) && c != EOF && (c!=']')) {
if ((c == '[') && (state == 0))
state = 1;
else if ((c == '{') && (state == 1))
state = 2;
else if ((c == '\"') && (state == 2))
state = 3;
else if ((c == '\"') && (state == 3))
state = 2;
else if ((c == ':') && (state == 2))
state = 4;
else if ((c == '\"') && (state == 4))
state = 5;
else if ((c == '\"') && (state == 5))
state = 4;
else if ((c == ',') && (state == 4)) {
state = 2;
g << buffer << ",";
buffer = "";
} else if ((c == '}') && (state == 4)) {
state = 1;
g << buffer << ",";
buffer = "";
} else if ((c == '}') && (state = 2))
state = 1;
else if ((c == ',') && (state = 1))
g << "\n";
else if (state == 5)
buffer += c;
else if ((isdigit(c)) && (state == 4))
buffer += c;
}
return 0;
}