c++ - 避免 eof C++ 的 "magic number"

标签 c++ eof magic-numbers

我有一些代码在逐行遍历文本文件时循环以标记数据并将其插入 vector 中。

我正在使用 peek() 来测试文件是否位于末尾,如果是则中断循环:

if (fin.peek() == -1)
    break;

这工作正常,但我对包含“魔数(Magic Number)”-1 有点恼火..是否有一个 C++ 库,我可以包含与预定义的 stdio.h 相同的功能 - 1 作为 EOF,还是应该定义一个 const int eof = -1?

最佳答案

“魔法值”-1 定义为 Traits::eof,其中 Traits 是 fintraits_type typedef > 变量。

换句话说,decltype(fin)::traits_type::eof

关于c++ - 避免 eof C++ 的 "magic number",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19402810/

相关文章:

c++ - 使用非类型可变参数模板的运行时计算

c - 如何在没有遇到 EOF 时终止 read()?

c++ - 对 C++ Primer 示例中的控制流执行感到困惑

java - 为什么在java中正则表达式的实现中使用魔数(Magic Number)?

java - 根据文件内的字符查找文件类型

c++ - Excel NORMDIST 函数的 C++ 实现中的魔数(Magic Number)

c++ - 具有映射的结构 vector 的结构

c++ - 从 C++ Windows DLL 文件中记录

C++ atoi() 只返回第一个数字

c++ - rdstate() 返回值是什么意思?