c++ - 写入文件 - 无效问题

标签 c++

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

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

我知道如果我返回整数数组就可以完成它。但这会使我的代码变得复杂,我必须添加某种计数参数等。

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

最佳答案

您可以简单地更改函数以获取对 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);

关于c++ - 写入文件 - 无效问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122794/

相关文章:

c++ - 为什么 std::string str = {}?

c++ - 画一个不同颜色扇区的圆环

python - DFS中c++和Python的区别

c++ - 使用 Win32/MFC 将文件位置传递给外部进程

c++ - 从(基对象的基引用)到(派生类引用)的静态转换

c++ - 枚举和用户输入

c++ - 为什么在 C++ 中声明字符串时大小不同?

c++ - ATLGetDacl 从 32 位进程访问 64 位注册表键

C++ 库和自注册类 : Factory map empty in client application

c++ - 建立 facebook 愚蠢