我正在尝试使用fstream写入文件,但是我的代码无法正常工作。您能帮我做错什么吗?

void mem_test()
    {
            fstream filepointer;
            string buffer;

            if ( filepointer.is_open() )
            {
                    filepointer.open("test.t", ios::in | ios::out | ios::binary);
                    getline(filepointer, buffer);
                    getline(filepointer, buffer);

                    filepointer << "TEST!" << endl;
            }
            filepointer.close();
    }


我的文件test.t(在Linux中读写文件的权限):

Example Line 1
Example Line 2
Example Line 3
Example Line 4


谢谢!

最佳答案

您正在实际打开文件之前检查文件是否已打开,因此应为:

void mem_test()
{
        fstream filepointer;
        string buffer;
        filepointer.open("test.t", ios::in | ios::out | ios::binary);
        if (filepointer.is_open())
        {
                getline(filepointer, buffer);
                getline(filepointer, buffer);
                filepointer << "TEST!" << endl;
                filepointer.close();
        }
}

09-27 17:37
查看更多