Pagini recente » Cod sursa (job #386256) | Cod sursa (job #3160165) | Cod sursa (job #1375290) | Cod sursa (job #1399611) | Cod sursa (job #1340834)
#include <cstdio>
#include <string>
#include <vector>
using namespace std;
#define FIN "convertor.in"
#define FOUT "convertor.out"
inline int is_whitespace(char c)
{
return c < 33;
//return c == ' ' || c == '\n' || c == '\t' || c == '\r';
}
int main()
{
vector <string> headers, elements;
string str;
char c;
int H, fline, i;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
for (fline = 1; scanf("%c", &c); )
{
if (is_whitespace(c))
continue;
if (c == '"')
{
for (str.clear(), scanf("%c", &c); c != '"'; scanf("%c", &c))
str.push_back(c);
if (fline)
headers.push_back(str);
}
if (c == ':')
{
for (scanf("%c", &c); is_whitespace(c); scanf("%c", &c));
if (c == '"')
for (str.clear(), scanf("%c", &c); c != '"'; scanf("%c", &c))
str.push_back(c);
else
for (str.clear(); c >= '0' && c <= '9'; scanf("%c", &c))
str.push_back(c);
if (fline)
elements.push_back(str);
else
printf("%s,", str.c_str());
}
if (c == '}' && fline)
{
fline = 0;
for (i = 0; i < headers.size(); ++ i)
printf("%s,", headers[i].c_str());
printf("\n");
for (i = 0; i < elements.size(); ++ i)
printf("%s,", elements[i].c_str());
}
if (c == '{' && !fline)
printf("\n");
if (c == ']')
break;
}
/*H = headers.size();
for (i = 0; i < H; ++ i)
printf("%s,", headers[i].c_str());
for (i = 0; i < elements.size(); ++ i)
{
if (i % H == 0)
printf("\n");
printf("%s,", elements[i].c_str());
}*/
printf("\n");
}