【问题标题】:how to make length restriction on string::getline如何对 string::getline 进行长度限制
【发布时间】:2017-08-31 05:16:08
【问题描述】:

istream& getline (istream& is, string& str, char delim);

对于string::getline,没有可以通过限制字符数来防止溢出的参数。也许 cin.getline(str,length) 可以弥补这个问题,但我想知道是否有其他使用 string::getline 的方法。

【问题讨论】:

  • std::getline 根据需要扩展字符串,它永远不会导致溢出。这就是std::string 的优点,它可以很容易地添加到。

标签: c++ string c++11


【解决方案1】:

std::getline() 函数没有最大长度限制的参数。 std::string 本质上是动态的,它的大小随着它的附加而增长。 std::getline() 的最大限制是 std::string::max_size()

如果要限制行长,则必须改用std::istream::getline() 方法。

【讨论】:

    【解决方案2】:

    是的,因为不需要它,因为std::getline 会根据需要管理字符串,以防止溢出。

    此外,请记住std::string 具有轻松增长的能力。

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2017-05-21
      • 2011-02-24
      • 1970-01-01
      相关资源
      最近更新 更多