【问题标题】:Why does taking large input from stdin using getline truncate my input?为什么使用 getline 从标准输入获取大量输入会截断我的输入?
【发布时间】:2020-01-21 11:29:41
【问题描述】:

我一直在尝试从 cpp 中的标准输入中获取输入。

我的输入包含 1000 个数字(每个数字的最大大小

这是我的终端的屏幕截图:

我从getline() 获取输入并存储在字符串缓冲区中。

为什么我的命令提示符会截断我的输入?

【问题讨论】:

  • 你用什么操作系统和终端?
  • @anastaciu 您是否希望 OP 发布最多 10 位数字的 1000 个号码?
  • @ThomasSablik 不,他们可能希望 OP 包含重现问题所需的详细信息,即重现问题的终端、环境和示例数据。您不必粘贴“1000 个数字,最多 10 位数字”。您可以只指定“粘贴 1000 个最多 10 位数字时会出现问题”。
  • 可能不相关,但我不明白您为什么需要向标准输入插入那么多数据。你能不能只从文件中读取并避免这个问题?

标签: c++ string input console getline


【解决方案1】:

从屏幕截图看来,您使用的是 Windows 命令提示符。这些有一个line limit of 8191

在命令提示符中,您在命令提示符处使用的以下命令行的总长度不能超过 2047 或 8191 个字符(取决于您的操作系统):

如果您需要输入超过该限制的大量数字列表,从文件中读取它们可能会更好。

【讨论】:

  • 如果这回答了您的问题,您可以使用勾选来接受它 - 尽管建议等待一段时间,看看您是否得到其他更好的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多