C++ 中 numeric_limits<streamsize>::max() 的值

Shu*_*dav 1 c++ byte numeric-limits

cin.ignore()在 C++ 中使用时,它需要一个字符数的参数来消耗,直到出现分隔符。我经常观察到以下内容被使用cin.ignore(numeric_limits<streamsize>::max(), '\n');

我很想知道 的价值,numeric_limtis<streamsize>::max()所以我只是输出了它的价值,它变成了一个巨大的价值 9223372036854775807 。如果它代表字符数,那么它可以以字节为单位考虑,如果这是真的,这不是一个非常大的值超过我的硬盘空间。

有人能告诉我它到底是什么,为什么这么大的价值?

lll*_*lll 6

这不是超过我的硬盘空间的非常大的值吗?

这正是这个值的目的。您想跳过尽可能多的字符。事实上,这个值确实表示无限,因为这个值的计数测试被禁用

提取了计数字符。在 count 等于 std::numeric_limits< std::streamsize >::max() 的特殊情况下禁用此测试