我有一个名为input.txt的文件,它包含一系列嵌套对象,其中每个对象都由{和}分隔。对象中的属性包含一个名称,后跟至少一个空格,后跟一组由(和)分隔的参数。逗号分隔多个参数,见下文
input.txt中
{
colour (3)
position (3,4)
size (2)
{
position (13,4)
size (2)
colour (5)
}
...
如何创建一个函数来解析输入文件并将数据复制到输出文件?
到目前为止我已经尝试了
parser(char filenamein[], char filenameout[])
{
ifstream fin(filenamein);
if(fin.is_open())
{
ofstream fout(filenameout);
char c;
while (fin.good())
{
fin.get(c);
fout << c;
}
fout.close();
fin.close();
return true;
}
return false;
}
答案 0 :(得分:0)
您可能对Boost Spirit库感兴趣。
答案 1 :(得分:0)
如果您只想让代码将一个文件复制到另一个文件,则可以使用以下代码。当然,正如你所看到的,实现这一目标的方法不止一种。
int copy_file()
{
ifstream input("c:\\input.txt", std::ios::in|std::ios::binary);
if(!input.good())
{
// error opening input file
return -1;
}
ofstream output("c:\\output.txt", std::ios::trunc|std::ios::binary);
if(!output.good())
{
// error opening output file
return -2;
}
output << input.rdbuf();
if(!output.good())
{
// writing to file failed
return -3;
}
return 0;
}