溫馨提示×

如何在C++中實現條件性文件覆蓋

c++
小樊
83
2024-09-06 08:37:26
欄目: 編程語言

在 C++ 中,你可以使用文件流(例如 std::ifstreamstd::ofstream)來檢查文件是否存在,并根據條件決定是否覆蓋文件

#include<iostream>
#include <fstream>
#include<string>

bool fileExists(const std::string& filename) {
    std::ifstream file(filename);
    return file.good(); // 如果文件存在且可讀,返回 true
}

void writeToFile(const std::string& filename, const std::string& content, bool overwrite) {
    if (!overwrite && fileExists(filename)) {
        std::cout << "文件已存在,不會覆蓋。"<< std::endl;
        return;
    }

    std::ofstream file(filename);
    if (file.is_open()) {
        file<< content;
        file.close();
        std::cout << "文件已寫入。"<< std::endl;
    } else {
        std::cout << "無法打開或創(chuàng)建文件。"<< std::endl;
    }
}

int main() {
    std::string filename = "example.txt";
    std::string content = "Hello, World!";

    bool overwrite = false; // 設置為 true 以覆蓋文件,設置為 false 以避免覆蓋
    writeToFile(filename, content, overwrite);

    return 0;
}

在這個示例中,我們首先定義了一個名為 fileExists 的函數,該函數接受一個文件名參數并檢查文件是否存在。接下來,我們定義了一個名為 writeToFile 的函數,該函數接受文件名、要寫入的內容以及一個布爾值 overwrite 作為參數。如果 overwritetrue,則函數將始終覆蓋文件;如果 overwritefalse,則函數將在文件存在時避免覆蓋文件。最后,在 main 函數中,我們調用 writeToFile 函數并傳遞相應的參數。

0