在 C++ 标准(第 27.6.1.3\24 节)中,对于
流媒体ignore()
IOStreams 库中的函数,这意味着如果您为“n”提供一个参数numeric_limits::max()
,它将继续忽略字符
永远直到找到分隔符,甚至远远超出实际
流大小的最大值(即“n”参数被解释为无限)。
对于 gcc 实现来说,这确实是这样的ignore()
已实施,但我仍然不清楚
这是特定于实现的还是标准强制要求的。
熟悉这一点的人可以确认这是由一个保证的吗?
符合标准的 iostreams 库?
标准说numeric_limits<streamsize>::max()
是一个特殊值,不影响跳过的字符数。
效果:表现为未格式化的输入函数(如 27.7.2.3 第 1 段所述)。构造哨兵对象后,提取字符并丢弃它们。字符将被提取,直到发生以下任一情况:
- 如果n != numeric_limits<streamsize>::max()
(18.3.2),提取n个字符
-- 文件结束发生在输入序列上(在这种情况下,函数调用 setstate(eofbit),这可能会抛出 ios_base::failure (27.5.5.4));
-- Traits::eq_int_type(traits::to_int_type(c), delim) 用于下一个可用输入字符 c(在这种情况下,将提取 c)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)