我有一个void类型函数,向控制台显示几个整数。我希望将这些整数写入文件。这是我正在谈论的功能:
void inorder(node *root)
{
if(root)
{
inorder(root->left);
std::cout << root->key << " ";
inorder(root->right);
}
}
我意识到如果我返回整数数组就可以完成它。但它会使我的代码复杂化,我将不得不添加某种计数参数等。
这可以将此函数的结果写入文件吗?
答案 0 :(得分:3)
您可以轻松更改函数以引用std::ostream
,然后将其传递给ofstream
或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);