繁体   English   中英

用C ++写入文件

[英]Writing into a file in C++

我正在尝试使用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();
        }
}

无需先执行if ( filepointer.is_open() )检查,在这种情况下,由于文件流尚未打开文件 ,该检查将始终返回false ,结果将无法执行if块中的代码(打开首先与您要检查的文件相矛盾的文件)。 因此,首先打开文件,然后再检查流状态是否有错误(即,使用if(filepointer.is_open())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM