答案是使用std::remove函数可跨平台删除文件。该函数定义于,成功返回0,失败返回非零值,可结合文件存在性检查避免误报,Windows下也可用_unlink或DeleteFile进行更底层操作,但推荐优先使用std::remove以保证可移植性。

在C++中删除文件可以通过调用标准库中的 std::remove 函数来实现。这个函数不仅可用于删除普通文件,也可以用于删除空的目录(某些系统上可能不支持通过 remove 删除目录)。它定义在 头文件中。
使用 std::remove 删除文件
std::remove 是最简单且跨平台兼容性较好的方式。其函数原型如下:
int remove(const char *filename);如果删除成功,返回 0;失败则返回非零值。
示例代码:
立即学习“C++免费学习笔记(深入)”;
#include iostream>#include
int main() {
const char* filename = "test.txt";
if (std::remove(filename) == 0) {
std::cout } else {
std::cout }
return 0;
}
检查文件是否存在再删除
为避免误报错误,可以在删除前先判断文件是否存在。虽然 std::remove 本身在文件不存在时会失败,但你可以用 std::ifstream 尝试打开文件来预判:
terseBanner是一款简洁优雅的jquery轮播图插件。它删除了很多不实用或很少用的功能,只保留了最常用的,使用方便,功能完善,可以满足绝大多数网站的需求。该轮播图插件支持ie8浏览器,支持触屏事件。 使用方法 在页面中引入jquery和jquery.terseBanner.min.js文件。
bool fileExists(const char* filename) {
std::ifstream file(filename);
return file.good();
}
然后结合使用:
if (fileExists("test.txt")) {if (std::remove("test.txt") == 0) {
std::cout } else {
std::cout }
} else {
std::cout }
Windows 平台额外选项:_unlink 和 DeleteFile
在 Windows 系统中,还可以使用 _unlink(声明在
或者使用 Win32 API:
#include windows.h>DeleteFile("test.txt"); // 成功返回 TRUE
这种方式更底层,适合需要精确控制权限或处理只读文件等场景。
基本上就这些常用方法。推荐优先使用 std::remove,简洁且可移植性强。









