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

Value of numeric_limits<streamsize>::max() in c++

本文关键字:max 的值 limits numeric streamsize lt gt C++      更新时间:2023-10-16

在c++中使用cin.ignore()时,需要使用一个字符数的参数,直到出现分隔符为止。我经常观察到以下是要使用的cin.ignore(numeric_limits<streamsize>::max(), 'n');

我很想知道numeric_limtis<streamsize>::max()的值,所以我只输出了它的值,结果是9223372036854775807。如果它表示字符数,那么它可以被认为是以字节为单位的,如果这是真的,这不是一个超过我的HDD空间的很大值吗。

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

这不是一个超过我的HDD空间的很大值吗。

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

提取了

count个字符。此测试在特殊情况下被禁用count等于std时的大小写::numeric_limits<std::streamsize>::max((

numeric_limtis<streamsize>::max()为您提供了streamsize对象可以容纳的最大值。这实际上并不是缓冲区中可以有多少个字符,这只是缓冲区使用的类型所支持的。如果你有一台足够大、有足够内存的机器,那么你可以在缓冲区中获得9223372036854775807个字符。