当有同名文件时,我想覆盖文件。 (C ++ file.write)

时间:2019-02-28 09:09:39

标签: c++

我的代码如下所示。 我使用两个缓冲区,因为某种程度上我的缓冲区无法容纳所有数据。 无论如何,我希望每次运行代码时都将文件覆盖, 但是如果有相同名称的文件,它将不会被覆盖。 因此,我必须在运行之前删除文件。如何更改代码以覆盖文件?

顺便说一句,我正在通过writeFile函数传递文件名 带有char filename []类型。

ofstream myfile;
myfile.open(filename, ios::out | ios::binary| ios::app);
if (!myfile.is_open()) {
    cout << "cannot open file" << endl;
}
myfile.write((char *)&(*buffer), 512 * 512 * depth);
myfile.write((char *)&(*buffer2), 512 * 512 * depth);

myfile.close();

1 个答案:

答案 0 :(得分:1)

您的代码可以按照您的要求工作。您必须删除ios::app

ofstream myfile;
myfile.open(filename, ios::out | ios::binary); // <-- changes here
if (!myfile.is_open()) {
    cout << "cannot open file" << endl;
}
myfile.write((char *)&(*buffer), 512 * 512 * depth);
myfile.write((char *)&(*buffer2), 512 * 512 * depth);

myfile.close();