Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::basic_istream<CharT,Traits>::getline

      From cppreference.com
      <cpp‎ |io‎ |basic istream
       
       
       
       
      basic_istream& getline( char_type* s,std::streamsize count);
      (1)
      basic_istream& getline( char_type* s,std::streamsize count, char_type delim);
      (2)

      Extracts characters from stream until end of line or the specified delimiterdelim.

      The first overload is equivalent togetline(s, count, widen('\n')).

      Behaves asUnformattedInputFunction. After constructing and checking the sentry object, extracts characters from*this and stores them in successive locations of the array whose first element is pointed to bys, until any of the following occurs (tested in the order shown):

      1. end of file condition occurs in the input sequence.
      2. the next available characterc is the delimiter, as determined byTraits::eq(c, delim). The delimiter is extracted (unlikebasic_istream::get()) and counted towardsgcount(), but is not stored.
      3. count is non-positive, orcount-1 characters have been extracted (setstate(failbit) is called in this case).

      If the function extracts no characters, ​failbit is set in the local error state beforesetstate() is called.

      In any case, ifcount>0, it then stores a null characterCharT() into the next successive location of the array and updatesgcount().

      Contents

      [edit]Notes

      Because condition #2 is tested before condition #3, the input line that exactly fits the buffer does not triggerfailbit.

      Because the terminating character is counted as an extracted character, an empty input line does not triggerfailbit.

      [edit]Parameters

      s - pointer to the character string to store the characters to
      count - size of character string pointed to bys
      delim - delimiting character to stop the extraction at. It is extracted but not stored.

      [edit]Return value

      *this

      [edit]Exceptions

      [edit]
      failure if an error occurred (the error state flag is notgoodbit) andexceptions() is set to throw for that state.

      If an internal operation throws an exception, it is caught andbadbit is set. Ifexceptions() is set forbadbit, the exception is rethrown.

      [edit]Example

      Run this code
      #include <array>#include <iostream>#include <sstream>#include <vector> int main(){std::istringstream input("abc|def|gh");std::vector<std::array<char,4>> v; // note: the following loop terminates when std::ios_base::operator bool()// on the stream returned from getline() returns falsefor(std::array<char,4> a; input.getline(&a[0],4,'|');)        v.push_back(a); for(auto& a: v)std::cout<<&a[0]<<'\n';}

      Output:

      abcdefgh

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 531C++98std::getline could not handle the
      case wherecount is non-positive
      no character is
      extracted in this case

      [edit]See also

      read data from an I/O stream into a string
      (function template)[edit]
      extracts formatted data
      (public member function)[edit]
      extracts characters
      (public member function)[edit]
      extracts blocks of characters
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream/getline&oldid=167716"

      [8]ページ先頭

      ©2009-2025 Movatter.jp