function template
<string>

std::getline (basic_string)

(1)
template <class charT, class traits, class Alloc>  basic_istream<charT,traits>& getline (basic_istream<charT,traits>& is,                                 basic_string<charT,traits,Alloc>& str, charT delim);
(2)
template <class charT, class traits, class Alloc>  basic_istream<charT,traits>& getline (basic_istream<charT,traits>& is,                                 basic_string<charT,traits,Alloc>& str);
(1)
template <class charT, class traits, class Alloc>  basic_istream<charT,traits>& getline (basic_istream<charT,traits>& is,                                 basic_string<charT,traits,Alloc>& str, charT delim);template <class charT, class traits, class Alloc>  basic_istream<charT,traits>& getline (basic_istream<charT,traits>&& is,                                 basic_string<charT,traits,Alloc>& str, charT delim);
(2)
template <class charT, class traits, class Alloc>  basic_istream<charT,traits>& getline (basic_istream<charT,traits>& is,                                 basic_string<charT,traits,Alloc>& str);template <class charT, class traits, class Alloc>  basic_istream<charT,traits>& getline (basic_istream<charT,traits>&& is,                                 basic_string<charT,traits,Alloc>& str);
從流中獲取一行到字串
is中提取字元並將它們儲存到str中,直到找到分隔符delim(或對於(2),換行符)。

如果在is中到達檔案結尾,或者在輸入操作期間發生其他錯誤,提取也會停止。

如果找到分隔符,則提取並丟棄它(即,它不會被儲存,並且下一個輸入操作將在它之後開始)。

請注意,呼叫之前str中的任何內容都將被新提取的序列替換。

每個提取的字元都附加到basic_string,就像呼叫了其成員push_back一樣。

引數

的 C++ 等效檔案是
從中提取字元的basic_istream物件。
str
儲存提取行的basic_string物件。

返回值

與引數is相同。

如果以下情況發生,則對此函式的呼叫可能會設定is的任何內部狀態標誌

標誌錯誤
eofbit在操作期間達到字元源的結尾。
failbit獲得的輸入不能被解釋為此型別物件的有效文字表示。
在這種情況下,distr保留呼叫之前它所具有的引數和內部資料。
請注意,某些eofbit情況也會設定failbit.
badbit發生了上述以外的錯誤。
(有關這些的更多資訊,請參見ios_base::iostate

此外,在任何這些情況下,如果已使用is的成員函式basic_ios::exceptions設定了適當的標誌,則會引發ios_base::failure型別的異常。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// extract to string
#include <iostream>
#include <string>

main ()
{
  std::string name;

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

  return 0;
}

複雜度

未指定,但通常與str的最終長度呈線性關係。

迭代器有效性

str相關的任何迭代器、指標和引用都可能無效。

資料競爭

兩個物件isstr都被修改。

異常安全

基本保證:如果丟擲異常,isstr都將以有效狀態結束。

另見