C++ C++;解析输入文件并将数据复制到输出文件

C++ C++;解析输入文件并将数据复制到输出文件,c++,function,file-io,C++,Function,File Io,我有一个名为input.txt的文件,其中包含一系列嵌套对象,其中每个对象由{和}分隔。对象中的属性包含一个名称,后跟至少一个空格,后跟一组由(和)分隔的参数。逗号分隔多个参数,请参见下文 input.txt { colour (3) position (3,4) size (2) { position (13,4) size (2) colour (5) } ... 如何创建一个函数来解析输入文件并将数据复制到输出文件 到目前为止我已经试过了 parser(char filenamein[]

我有一个名为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;
}
解析器(char filenamein[],char filenameout[]
{
ifstream-fin(filenamein);
如果(fin.is_open())
{
流fout(文件名输出);
字符c;
while(fin.good())
{
fin.get(c);

如果您可能对库感兴趣。

如果您只想让代码将一个文件复制到另一个文件,下面的代码就可以了。当然,您可以看到,实现这一点的方法不止一种

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;
}
int copy_文件()
{
ifstream输入(“c:\\input.txt”,std::ios::in | std::ios::binary);
如果(!input.good())
{
//打开输入文件时出错
返回-1;
}
流输出(“c:\\output.txt”,std::ios::trunc | std::ios::binary);
如果(!output.good())
{
//打开输出文件时出错
返回-2;
}

输出简短回答:设计并实现一个自动机。你的输出文件的格式是什么?它与输入文件完全相同吗?等等。你只是想复制文件吗?你需要以任何方式解释它吗?试图将数据复制到输出文件,然后找到最大大小的对象并打印到控制台窗口t对象层次结构中的级别。假设最外层的初始对象级别为1,打印输出应该类似于“最大的对象大小(大小值)且位于级别(级别值)”@Marc:好的,这是一个完全不同的问题。请编辑您的问题,使其说明您真正想做的事情。