C++ STL getline()函数

getline()

C++11 <string>

函数原型

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

作用:从输入流中获取一行到字符串
is中提取字符并将其存储到str中,直到找到定界字符delim(2)中的默认定界符为'\n')为止。

如果到达文件末尾或在输入操作期间发生其他错误,提取也会停止。

如果找到定界符,则将其提取并丢弃(即,不存储定界符,并且在其后将开始下一个输入操作)。

参数

is

   istream 从中提取字符的istream对象。

str

  存储行的string对象。

  丢弃string对象原先的内容,替换为新提取的行。

返回值

正常情况下返回值与参数相同istream&

对此函数的调用发生错误时可以设置为以下内部状态标志

状态标志 发生的错误
eofbit 在其操作过程中到达了字符源的末尾
failbit 无法将获得的输入解释为此类型对象的有效文本表示形式。

在这种情况下,distr会保留调用之前拥有的参数和内部数据。

请注意,某些eofbit情况也会设置故障位。
badbit 发生上述以外的错误。

举例

// 提取到 string
#include <iostream>
#include <string>

int main ()
{
  std::string name;

  std::cout << "Please, enter your full name: ";
  std::getline ( std::cin, name );
  std::cout << "Hello, " << name << "!\n";

  return 0;
}

posted @ 2021-01-21 08:33  Jude_Zhang  阅读(422)  评论(0编辑  收藏  举报