写入文件 - 无效问题

时间:2013-04-20 16:49:16

标签: c++

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

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

我意识到如果我返回整数数组就可以完成它。但它会使我的代码复杂化,我将不得不添加某种计数参数等。

这可以将此函数的结果写入文件吗?

1 个答案:

答案 0 :(得分:3)

您可以轻松更改函数以引用std::ostream,然后将其传递给ofstreamstd::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);