阅读量:0
在 C++ 中,你可以使用文件流(例如 std::ifstream
和 std::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 << "无法打开或创建文件。"<< 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
作为参数。如果 overwrite
为 true
,则函数将始终覆盖文件;如果 overwrite
为 false
,则函数将在文件存在时避免覆盖文件。最后,在 main
函数中,我们调用 writeToFile
函数并传递相应的参数。