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

时间:2018-10-30 13:56:20

标签: c++ byte numeric-limits

在c ++中使用cin.ignore()时,要消耗字符数的参数,直到定界符出现为止。 我最经常观察到以下使用cin.ignore(numeric_limits<streamsize>::max(), '\n');

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

有人可以告诉我它实际上是什么,为什么这么大的价值吗?

2 个答案:

答案 0 :(得分:3)

  

这不是超出我的硬盘空间的很大值。

这正是此值的目的。您想跳过尽可能多的字符。实际上,由于count test is disabled for this value

,此值的确表示 infinite
  提取了

个字符。该测试在特殊情况下被禁用   当count等于std :: numeric_limits :: max()

答案 1 :(得分:0)

numeric_limtis<streamsize>::max()为您提供streamsize对象可以容纳的最大值。这实际上不是缓冲区中可以包含多少个字符,而只是缓冲区使用的支持类型。如果您的计算机足够大且具有足够的内存,则缓冲区中可以得到9,223,372,036,854,775,807个字符。