2

我有一个 void 类型函数向控制台显示几个整数。我希望将这些整数写入文件。这是我正在谈论的功能:

void inorder(node *root)
{
    if(root)
    {
        inorder(root->left);
        std::cout << root->key << " ";
        inorder(root->right);
    }
}

我知道如果我返回整数数组就可以做到这一点。但这会使我的代码复杂化,我必须添加某种计数参数等。

是否可以将此函数的结果写入文件?

4

1 回答 1

3

您可以简单地更改函数以获取对 an 的引用std::ostream,然后根据您是要写入文件还是标准输出,将其传递给ofstreamor :std::cout

void inorder(node *root, std::ostream& os)
{
  if(root)
  {
    inorder(root->left, os);
    os << root->key << " ";
    inorder(root->right, os);
  }
}

然后

node* root = ....;

// write to stdout
inorder(root, std::cout);

// write to a file
std::ofstream myfile("myfile.txt");
inordet(root, myfile);
于 2013-04-20T16:51:06.973 回答