Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_istream::get(3)    C++ Standard Libary   std::basic_istream::get(3)

NAME
       std::basic_istream::get - std::basic_istream::get

Synopsis
	  int_type							get();
       (1)
	  basic_istream&	 get(	      char_type&	 ch	    );
       (2)
	  basic_istream&   get(	  char_type*   s,   std::streamsize  count  );
       (3)
	  basic_istream& get( char_type* s, std::streamsize  count,  char_type
       delim );	(4)
	  basic_istream&       get(	  basic_streambuf&	strbuf	    );
       (5)
	  basic_istream& get(  basic_streambuf&	 strbuf,  char_type  delim  );
       (6)

	  Extracts character or	characters from	stream.

	  All versions behave as UnformattedInputFunctions. After constructing
       and checking
	  the sentry object, these functions perform the following:

	  1)  Reads  one character and returns it if available.	Otherwise, re-
       turns Traits::eof()
	  and sets failbit and eofbit.
	  2) Reads one character and stores it to ch if	available.  Otherwise,
       leaves ch
	  unmodified  and  sets	failbit	and eofbit. Note that this function is
       not overloaded on
	  the types signed char	and unsigned char, unlike the formatted	 char-
       acter input
	  operator>>.
	  3)  Same  as	get(s,	count,	widen('\n')),  that  is, reads at most
       count-1 characters and
	  stores them into character string pointed to	by  s  until  '\n'  is
       found.
	  4) Reads characters and stores them into the successive locations of
       the character
	  array	 whose	first  element	is pointed to by s. Characters are ex-
       tracted and stored
	  until	any of the following occurs:

				  * count-1 characters have been stored

				  * end	of file	condition occurs in the	 input
       sequence
				    (setstate(eofbit) is called)

				  *  the  next	available  input  character  c
       equals delim, as
				    determined by Traits::eq(c,	 delim).  This
       character is not
				    extracted	 (unlike   basic_istream::get-
       line())

	  If no	characters were	extracted,  calls  setstate(failbit).  In  any
       case, if	count>0, a
	  null character (CharT() is stored in the next	successive location of
       the array.
	  5)  same as get(strbuf, widen('\n')),	that is, reads available char-
       acters and inserts
	  them to the given basic_streambuf object until '\n' is found.
	  6) reads characters and inserts them to  the	output	sequence  con-
       trolled by the given
	  basic_streambuf  object.  Characters are extracted and inserted into
       strbuf until any
	  of the following occurs:

				  * end	of file	condition occurs in the	 input
       sequence

				  *  inserting	into the output	sequence fails
       (in which case
				    the	character that could not be  inserted,
       is not
				    extracted)

				  *  the  next	available  input  character  c
       equals delim, as
				    determined by Traits::eq(c,	 delim).  This
       character is not
				    extracted.

				  * an exception occurs	(in which case the ex-
       ception is caught
				    and	not rethrown)

	  If no	characters were	extracted, calls setstate(failbit).

	  All  versions	 set the value of gcount() to the number of characters
       extracted.

Parameters
	  ch	 - reference to	the character to write the result to
	  s	 - pointer to the character string to store the	characters to
	  count	 - size	of character string pointed to by s
	  delim	 - delimiting character	to stop	the extraction at. It  is  not
       extracted and not
		   stored.
	  strbuf - stream buffer to read the content to

Return value
	  1) the extracted character or	Traits::eof()
	  2-6) *this

Exceptions
	  failure  if  an error	occurred (the error state flag is not goodbit)
       and exceptions()
	  is set to throw for that state.

	  If an	internal operation throws an exception,	it is caught and  bad-
       bit is set. If
	  exceptions() is set for badbit, the exception	is rethrown.

Example
       // Run this code

	#include <sstream>
	#include <iostream>

	int main()
	{
	    std::istringstream s1("Hello, world.");
	    char c1 = s1.get();	// reads 'H'
	    std::cout  <<  "after  reading  "  <<  c1  <<  ", gcount() == " <<
       s1.gcount() << '\n';
	    char c2;
	    s1.get(c2);		// reads 'e'
	    char str[5];
	    s1.get(str,	5);	// reads "llo,"
	    std::cout << "after	reading	" <<  str  <<  ",  gcount()  ==	 "  <<
       s1.gcount() << '\n';
	    std::cout << c1 << c2 << str;
	    s1.get(*std::cout.rdbuf());	// reads the rest, not including '\n'
	    std::cout << "\nAfter the last get(), gcount() == "	<< s1.gcount()
       << '\n';
	}

Output:
	after reading H, gcount() == 1
	after reading llo,, gcount() ==	4
	Hello, world.
	After the last get(), gcount() == 7

See also
	  read				 extracts blocks of characters
					 (public member	function)
	  operator>>			 extracts formatted data
					 (public member	function)
	  operator>>(std::basic_istream) extracts characters and character ar-
       rays
					 (function template)

http://cppreference.com		  2022.07.31	    std::basic_istream::get(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::istream::get&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help