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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_istream::read	- std::basic_istream::read

Synopsis
	  basic_istream& read( char_type* s, std::streamsize count );

	  Extracts characters from stream.

	  Behaves as UnformattedInputFunction. After constructing and checking
       the sentry
	  object,  extracts  characters	 and stores them into successive loca-
       tions of	the
	  character array whose	first element is pointed to by	s.  Characters
       are extracted and
	  stored until any of the following conditions occurs:

	    * count characters were extracted and stored

	    *  end  of	file  condition	occurs on the input sequence (in which
       case,
	      setstate(failbit|eofbit) is called). The number of  successfully
       extracted
	      characters can be	queried	using gcount().

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

Return value
	  *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.

Notes
	  When	using  a non-converting	locale (the default locale is non-con-
       verting), the
	  overrider of this function in	std::basic_ifstream may	 be  optimized
       for zero-copy
	  bulk I/O (by means of	overriding std::streambuf::xsgetn)

Example
       // Run this code

	#include <iostream>
	#include <fstream>
	#include <sstream>
	#include <string>
	#include <cstdint>

	int main()
	{
	    // read() is often used for	binary I/O
	    std::string	bin = {'\x12', '\x12', '\x12', '\x12'};
	    std::istringstream raw(bin);
	    std::uint32_t n;
	    if(raw.read(reinterpret_cast<char*>(&n), sizeof n))
		std::cout << std::hex << std::showbase << n << '\n';

	    // prepare file for	next snippet
	    std::ofstream("test.txt",		std::ios::binary)	    <<
       "abcd1\nabcd2\nabcd3";

	    // read entire file	into string
	    if(std::ifstream is{"test.txt", std::ios::binary | std::ios::ate})
       {
		auto size = is.tellg();
		std::string str(size, '\0'); //	 construct  string  to	stream
       size
		is.seekg(0);
		if(is.read(&str[0], size))
		    std::cout << str <<	'\n';
	    }
	}

Output:
	0x12121212
	abcd1
	abcd2
	abcd3

See also
	  write	     inserts blocks of characters
		     (public	 member	    function	 of	std::basic_os-
       tream<CharT,Traits>)
	  operator>> extracts formatted	data
		     (public member function)
	  readsome   extracts already available	blocks of characters
		     (public member function)
	  get	     extracts characters
		     (public member function)
	  getline    extracts characters until the given character is found
		     (public member function)
	  fread	     reads from	a file
		     (function)

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

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

home | help