【发布时间】:2011-05-04 03:08:12
【问题描述】:
在 C++ 标准(第 27.6.1.3\24 节)中,对于
IOStreams 库中的 istream ignore() 函数,这意味着如果您为 numeric_limits::max() 的“n”提供参数,它将继续忽略字符
直到找到分隔符为止,甚至超出实际
流大小的最大值(即“n”参数被解释为无限)。
对于 gcc 实现,这确实看起来是
ignore() 已实现,但我仍然不清楚
这是否是特定于实现的,或者是标准规定的。
知道这一点的人可以确认这是由
符合标准的 iostreams 库?
【问题讨论】:
-
你的意思是
std::numeric_limits,确定吗? -
如何为 istream 对象提供 numeric_limits::max() 个字符?
-
您正在使用哪个 istream 对象以及如何测试该条件?它不可能是cin,因为输入那么多字符大约需要20多个小时。我对您的测试方式而不是实际答案更感兴趣:)
-
@Eric:好吧,如果你在 32 位机器上编译(没有启用 LFS),那么在大于 4GB 的文件上执行此操作应该会达到限制。