< cpp‎ | io‎ | basic istream
Revision as of 11:09, 14 November 2012 by Cubbi (Talk | contribs)

std::streamsize readsome( char_type* s, std::streamsize count );

Extracts immediately available characters from the input stream.

Behaves as UnformattedInputFunction. After constructing and checking the sentry object,

If rdbuf()->in_avail() == -1, calls setstate(eofbit) and extracts no characters.

If rdbuf()->in_avail() == 0, extracts no characters.

If rdbuf()->in_avail() > 0, extracts std::min(rdbuf()->in_avail(), count)) characters and stores them into successive locations of the characater array whose first element is pointed to by s.



The behavior of this function is highly implementation-specific. For example, when used with std::ifstream, some compilers fill the underlying filebuf with data as soon as the file is opened (and readsome() on such compilers reads data, potentially, but not necessarily, the entire file), while other compilers only read from file when an actual input operation is requested (and readsome() issued after file opening never extracts any characters). Likewise, a call to std::cin.readsome() may return all pending unprocessed console input, or may always return zero and extract no characters.


s - pointer to the character array to store the characters to
count - maximum number of characters to read

Return value

number of characters actually extracted.


See also

Template:cpp/io/basic istream/dcl list readTemplate:cpp/io/basic streambuf/dcl list in avail