C++ Can C++;关闭a''';fstream&x27'';变量在'之后'';。关闭()'';?

C++ Can C++;关闭a''';fstream&x27'';变量在'之后'';。关闭()'';?,c++,visual-c++,C++,Visual C++,假设下面有一个代码: ifstream in("in.txt", ios::in | ios::binary) ofstream out("out.txt", ios::out | ios::binary | ios::trunc); if(in.is_open() && out.is_open()) { //TODO } else { cout << "\nUnable to open file. Error!!\n"; } in.close()

假设下面有一个代码:

ifstream in("in.txt", ios::in | ios::binary)
ofstream out("out.txt", ios::out | ios::binary | ios::trunc);

if(in.is_open() && out.is_open())
{
    //TODO
}
else
{
    cout << "\nUnable to open file. Error!!\n";
}

in.close();
out.close();
ifstream-in(“in.txt”,ios::in | ios::binary)
输出流(“out.txt”,ios::out | ios::binary | ios::trunc);
if(in.is_open()&&out.is_open())
{
//待办事项
}
其他的
{

我不能确定我是否正确理解了这个问题,但您不需要删除任何内容,特别是如果此代码在函数中,您可以像以前一样关闭流,并且当函数结束时,您可以继续操作。

流将在超出范围时关闭并删除:

{
    ifstream in("in.txt", ios::in | ios::binary)
    ofstream out("out.txt", ios::out | ios::binary | ios::trunc);

    if(in && out)
    {
        //TODO
    }
    else
    {
        cout << "\nUnable to open file. Error!!\n";
    }
} // no close needed and no delete should be done
{
ifstream-in(“in.txt”,ios::in | ios::binary)
输出流(“out.txt”,ios::out | ios::binary | ios::trunc);
如果(输入和输出)
{
//待办事项
}
其他的
{

我不能确定我是否理解你的问题,但你只删除了新问题中的某个内容。就像你声明了某个
MyType x;
你不能或不应该删除它一样。当它超出范围时,它就会消失。请说明你正在尝试做什么。事实上,如果流对象是g,你的问题正文与你的问题标题不匹配如果超出范围,您根本不需要
.close()
它,因为这将由析构函数自动完成。如果您真的想这样做,它是完全安全的,但有点奇怪。