C++ 输出文件

C++ output files

我正在尝试使用递归导出树的内容。除了导出的最后一个元素,我什么都没有得到。

void inOrder(tree *root) {
    out.open("output.txt");
    if (root != NULL)
    {
        inOrder (root->left);
        out << root -> item << " \t";      //This doesn't work
        cout << root -> item << " \t";       //This works
        inOrder (root->right);
    }

    out.close();
    out.clear();
}

我不确定在这里导出时哪里出错了。

移动你的

out.open("output.txt");    

out.close();
out.clear();

在你的函数之外,因为在递归过程中你最终会重新打开文件(这会导致流错误),然后关闭它。事实上,你甚至不需要最后两个,ofstream的析构函数会在程序终止时自动关闭文件。