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
的析构函数会在程序终止时自动关闭文件。
我正在尝试使用递归导出树的内容。除了导出的最后一个元素,我什么都没有得到。
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
的析构函数会在程序终止时自动关闭文件。