gpt4 book ai didi

c++ - 在 C++ 中检查空文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:03 25 4
gpt4 key购买 nike

有没有一种简单的方法来检查文件是否为空。就像你将一个文件传递给一个函数并且你意识到它是空的,然后你立即关闭它?谢谢。

编辑,我尝试使用 fseek 方法,但我收到一条错误消息“无法将 ifstream 转换为 FILE *”。

我的函数的参数是

myFunction(ifstream &inFile)

最佳答案

也许类似于:

bool is_empty(std::ifstream& pFile)
{
return pFile.peek() == std::ifstream::traits_type::eof();
}

简短而甜美。


考虑到您的错误,其他答案使用 C 风格的文件访问,您可以在其中获得具有特定功能的 FILE*

相反,您和我正在使用 C++ 流,因此不能使用这些函数。上面的代码以一种简单的方式工作:peek() 将查看流并返回(不删除)下一个字符。如果到达文件末尾,则返回 eof()。因此,我们只是在流中peek() 看看它是不是eof(),因为空文件没有什么可窥视的。

请注意,如果文件一开始从未打开过,这也会返回 true,这应该适用于您的情况。如果你不想这样:

std::ifstream file("filename");

if (!file)
{
// file is not open
}

if (is_empty(file))
{
// file is empty
}

// file is open and not empty

关于c++ - 在 C++ 中检查空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33304205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com