Pagini recente » Cod sursa (job #527493) | Cod sursa (job #1361061)
#include <iostream>
#include <stdio.h>
using namespace std;
void write_string(FILE* input, FILE* output)
{
char ch;
ch = fgetc(input);
while(ch != '\"') {
fputc(ch,output);
ch = fgetc(input);
}
fputc(',', output);
}
int main()
{
char ch;
FILE* input, *output;
input = fopen("convertor.in", "r");
output = fopen("convertor.out", "w");
//parcurg prima acolada din fisier si scriu cheile
while((ch = fgetc(input)) != '}'){
//la intalnirea unei ghilimele se stie ca s-a gasit o cheie
if(ch == '\"')
write_string(input, output);
//daca se gasesc ghilimele imediat dupa semnul doua puncte
//atunci intre ghilimele este o valoare, deci nu se scrie in fisier
else
if(ch == ':'){
ch = fgetc(input);
while(ch == ' ' || ch == '\n'){
ch = fgetc(input);
}
if ( ch == '"'){
ch = fgetc(input);
while(ch != '"'){
ch = fgetc(input);
}
}
}
}
fseek(input, 0, SEEK_SET);
//scriu valorile
while((ch = fgetc(input)) != EOF){
if(ch == '{')
fputc('\n', output);
else
//fiecare valoare se afla dupa semnul doua puncte
if(ch == ':'){
ch = fgetc(input);
while(ch == ' ' || ch == '\n'){
ch = fgetc(input);
}
if(isdigit(ch)) {
while(ch != ' ' && ch != ',' && ch != '}' && ch != '\n'){
fputc(ch, output);
ch = fgetc(input);
}
fputc(',', output);
}
else
if ( ch == '"')
write_string(input, output);
}
}
fclose(input);
fclose(output);
return 0;
}