有没有一种简单的方法来检查文件是否为空。就像你将一个文件传递给一个函数并且你意识到它是空的,然后你马上关闭它?谢谢。
编辑,我尝试使用 fseek 方法,但我收到一条错误消息,提示“无法将 ifstream 转换为 FILE *”。
我的函数的参数是
myFunction(ifstream &inFile)
原文由 Crystal 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有一种简单的方法来检查文件是否为空。就像你将一个文件传递给一个函数并且你意识到它是空的,然后你马上关闭它?谢谢。
编辑,我尝试使用 fseek 方法,但我收到一条错误消息,提示“无法将 ifstream 转换为 FILE *”。
我的函数的参数是
myFunction(ifstream &inFile)
原文由 Crystal 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
也许类似于:
短而甜。
考虑到您的错误,其他答案使用 C 样式的文件访问,您可以在其中获得具有特定功能的
FILE*
。相反,你和我正在使用 C++ 流,因此不能使用这些函数。上面的代码以一种简单的方式工作:
peek()
将查看流并返回而不删除下一个字符。如果到达文件末尾,则返回eof()
。因此,我们只是peek()
在流中查看它是否是eof()
,因为空文件没有什么可看的。请注意,如果文件从未打开过,这也会返回 true,这应该适用于您的情况。如果你不想这样: