判断C++中文件是否为空可通过检查文件大小是否为0实现:使用std::ifstream以二进制模式打开文件,调用seekg(0, std::ios::end)移动到末尾,再用tellg()获取大小,若为0则文件为空;2. C++17可使用std::filesystem::file_size直接获取文件大小,需包含<filesystem>头文件,注意处理文件不存在或访问失败的异常;3. 判断时应区分文件不存在与文件为空,建议先用fs::exists检查文件存在性,再进行大小判断;4. 推荐使用二进制模式打开文件以避免文本模式下换行符处理带来的大小计算误差。

判断C++中文件是否为空,可以通过检查文件大小是否为0来实现。如果文件存在但没有内容,其大小就是0字节。
打开文件后,将文件指针移动到末尾,获取当前位置,即文件的总字节数:
std::ifstream
seekg(0, std::ios::end)
tellg()
示例代码:
std::ifstream file("test.txt", std::ios::binary | std::ios::ate);
if (!file.is_open()) {
std::cout << "无法打开文件\n";
return false;
}
return file.tellg() == 0;
C++17引入了
std::filesystem
立即学习“C++免费学习笔记(深入)”;
<filesystem>
std::filesystem::file_size(path)
示例代码:
#include <filesystem>
namespace fs = std::filesystem;
try {
if (fs::exists("test.txt")) {
return fs::file_size("test.txt") == 0;
} else {
std::cout << "文件不存在\n";
}
} catch (...) {
std::cout << "获取文件大小失败\n";
}
判断时要区分“文件不存在”和“文件为空”。建议先确认文件存在再检查大小。如果文件以文本模式打开,某些系统可能对换行符做处理,推荐使用二进制模式避免歧义。
基本上就这些方法,选择取决于你的C++标准和项目需求。
以上就是在C++中如何判断文件是否为空的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号