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

NAME
     std::basic_ifstream - std::basic_ifstream

Synopsis
	Defined in header <fstream>
	template<

	    class CharT,
	    class Traits = std::char_traits<CharT>

	> class basic_ifstream : public std::basic_istream<CharT, Traits>

	The class template basic_ifstream implements high-level input operations
     on
	file-based  streams.  It  interfaces a file-based streambuffer (std::ba-
     sic_filebuf)
	with the high-level interface of (std::basic_istream).

	A typical implementation of std::basic_ifstream holds only  one  non-de-
     rived data
	member: an instance of std::basic_filebuf<CharT, Traits>.

	std-basic ifstream-inheritance.svg

					Inheritance diagram

	Several typedefs for common character types are provided:

	Defined in header <fstream>
	Type	       Definition
	std::ifstream  std::basic_ifstream<char>
	std::wifstream std::basic_ifstream<wchar_t>

Member types
	Member type		  Definition
	char_type		  CharT
	traits_type		    Traits;   the   program   is  ill-formed  if
     Traits::char_type is
				  not CharT.
	int_type		  Traits::int_type
	pos_type		  Traits::pos_type
	off_type		  Traits::off_type
	native_handle_type(C++26) implementation-defined type that is Trivially-
     Copyable and
				  semiregular

Member functions
	constructor			constructs the file stream
					(public member function)
	destructor			destructs the basic_ifstream and the as-
     sociated
	[virtual] (implicitly declared) buffer, closes the file
					(virtual public member function)
	operator=			moves the file stream
	(C++11) 			(public member function)
	swap				swaps two file streams
	(C++11) 			(public member function)
	rdbuf				returns the underlying raw  file  device
     object
					(public member function)
	native_handle			 returns  the underlying implementation-
     defined handle
	(C++26) 			(public member function)

File operations
	is_open 			checks if the stream has  an  associated
     file
					(public member function)
	open				 opens a file and associates it with the
     stream
					(public member function)
	close				closes the associated file
					(public member function)

Non-member functions
	std::swap(std::basic_ifstream) specializes the std::swap algorithm
	(C++11) 		       (function template)

     Inherited from std::basic_istream

Member functions
Formatted input
	operator>> extracts formatted data
		   (public member function of std::basic_istream<CharT,Traits>)

Unformatted input
	get	   extracts characters
		   (public member function of std::basic_istream<CharT,Traits>)
	peek	   reads the next character without extracting it
		   (public member function of std::basic_istream<CharT,Traits>)
	unget	   unextracts a character
		   (public member function of std::basic_istream<CharT,Traits>)
	putback    puts a character into input stream
		   (public member function of std::basic_istream<CharT,Traits>)
	getline    extracts characters until the given character is found
		   (public member function of std::basic_istream<CharT,Traits>)
	ignore	   extracts and discards characters until the given character is
     found
		   (public member function of std::basic_istream<CharT,Traits>)
	read	   extracts blocks of characters
		   (public member function of std::basic_istream<CharT,Traits>)
	readsome   extracts already available blocks of characters
		   (public member function of std::basic_istream<CharT,Traits>)
		   returns number of characters extracted  by  last  unformatted
     input
	gcount	   operation
		   (public member function of std::basic_istream<CharT,Traits>)

Positioning
	tellg	   returns the input position indicator
		   (public member function of std::basic_istream<CharT,Traits>)
	seekg	   sets the input position indicator
		   (public member function of std::basic_istream<CharT,Traits>)

Miscellaneous
	sync	   synchronizes with the underlying storage device
		   (public member function of std::basic_istream<CharT,Traits>)

Member classes
	sentry	implements  basic  logic for preparation of the stream for input
     operations
	       (public member class of std::basic_istream<CharT,Traits>)

     Inherited from std::basic_ios

Member types
	Member type Definition
	char_type   CharT
	traits_type Traits
	int_type    Traits::int_type
	pos_type    Traits::pos_type
	off_type    Traits::off_type

Member functions
State functions
	good	      checks if no error has occurred i.e.  I/O  operations  are
     available
		      (public member function of std::basic_ios<CharT,Traits>)
	eof	      checks if end-of-file has been reached
		      (public member function of std::basic_ios<CharT,Traits>)
	fail	      checks if an error has occurred
		      (public member function of std::basic_ios<CharT,Traits>)
	bad	      checks if a non-recoverable error has occurred
		      (public member function of std::basic_ios<CharT,Traits>)
	operator!     checks if an error has occurred (synonym of fail())
		      (public member function of std::basic_ios<CharT,Traits>)
	operator bool checks if no error has occurred (synonym of !fail())
		      (public member function of std::basic_ios<CharT,Traits>)
	rdstate       returns state flags
		      (public member function of std::basic_ios<CharT,Traits>)
	setstate      sets state flags
		      (public member function of std::basic_ios<CharT,Traits>)
	clear	      modifies state flags
		      (public member function of std::basic_ios<CharT,Traits>)

Formatting
	copyfmt       copies formatting information
		      (public member function of std::basic_ios<CharT,Traits>)
	fill	      manages the fill character
		      (public member function of std::basic_ios<CharT,Traits>)

Miscellaneous
	exceptions    manages exception mask
		      (public member function of std::basic_ios<CharT,Traits>)
	imbue	      sets the locale
		      (public member function of std::basic_ios<CharT,Traits>)
	rdbuf	      manages associated stream buffer
		      (public member function of std::basic_ios<CharT,Traits>)
	tie	      manages tied stream
		      (public member function of std::basic_ios<CharT,Traits>)
	narrow	      narrows characters
		      (public member function of std::basic_ios<CharT,Traits>)
	widen	      widens characters
		      (public member function of std::basic_ios<CharT,Traits>)

     Inherited from std::ios_base

Member functions
Formatting
	flags		  manages format flags
			  (public member function of std::ios_base)
	setf		  sets specific format flag
			  (public member function of std::ios_base)
	unsetf		  clears specific format flag
			  (public member function of std::ios_base)
	precision	  manages decimal precision of floating point operations
			  (public member function of std::ios_base)
	width		  manages field width
			  (public member function of std::ios_base)

Locales
	imbue		  sets locale
			  (public member function of std::ios_base)
	getloc		  returns current locale
			  (public member function of std::ios_base)

Internal extensible array
	xalloc		   returns a program-wide unique integer that is safe to
     use as index
	[static]	  to pword() and iword()
			  (public static member function of std::ios_base)
			  resizes the private storage if necessary and access to
     the long
	iword		  element at the given index
			  (public member function of std::ios_base)
			  resizes the private storage if necessary and access to
     the void*
	pword		  element at the given index
			  (public member function of std::ios_base)

Miscellaneous
	register_callback registers event callback function
			  (public member function of std::ios_base)
	sync_with_stdio   sets whether C++ and C I/O libraries are interoperable
	[static]	  (public static member function of std::ios_base)

Member classes
	failure 	  stream exception
			  (public member class of std::ios_base)
	Init		  initializes standard stream objects
			  (public member class of std::ios_base)

Member types and constants
	Type	       Explanation
		       stream open mode type

		       The following constants are also defined:

		       Constant 	 Explanation
		       app		 seek to the end of stream  before  each
     write
		       binary		 open in binary mode
	openmode       in		 open for reading
		       out		 open for writing
		       trunc		 discard the contents of the stream when
					 opening
		       ate		  seek	to the end of stream immediately
     after
					 open
		       noreplace (C++23) open in exclusive mode

		       (typedef)
		       formatting flags type

		       The following constants are also defined:

		       Constant    Explanation
		       dec	    use  decimal  base	for  integer  I/O:   see
     std::dec
		       oct	   use octal base for integer I/O: see std::oct
		       hex	    use  hexadecimal  base  for integer I/O: see
     std::hex
		       basefield   dec | oct | hex. Useful  for  masking  opera-
     tions
		       left	    left adjustment (adds fill characters to the
     right): see
				   std::left
		       right	   right adjustment (adds fill characters to the
     left): see
				   std::right
		       internal    internal adjustment (adds fill characters  to
     the internal
				   designated point): see std::internal
		       adjustfield left | right | internal. Useful for masking
				   operations
				   generate  floating  point  types using scien-
     tific notation,
		       scientific  or hex notation if combined with fixed: see
				   std::scientific
	fmtflags		   generate floating point types using fixed no-
     tation, or
		       fixed	   hex notation if combined with scientific: see
				   std::fixed
		       floatfield  scientific | fixed. Useful for masking opera-
     tions
		       boolalpha   insert and extract bool type in  alphanumeric
     format: see
				   std::boolalpha
				   generate a prefix indicating the numeric base
     for integer
		       showbase     output,  require  the  currency indicator in
     monetary I/O:
				   see std::showbase
		       showpoint   generate a decimal-point  character	uncondi-
     tionally for
				   floating-point  number output: see std::show-
     point
		       showpos	   generate a + character for  non-negative  nu-
     meric output:
				   see std::showpos
		       skipws	    skip leading whitespace before certain input
     operations:
				   see std::skipws
		       unitbuf	   flush the output after each output operation:
     see
				   std::unitbuf
				   replace certain lowercase letters with  their
     uppercase
		       uppercase   equivalents in certain output operations: see
				   std::uppercase

		       (typedef)
		       state of the stream type

		       The following constants are also defined:

		       Constant Explanation
	iostate        goodbit	no error
		       badbit	irrecoverable stream error
		       failbit	input/output operation failed (formatting or ex-
     traction
				error)
		       eofbit	 associated  input  sequence has reached end-of-
     file

		       (typedef)
		       seeking direction type

		       The following constants are also defined:

	seekdir        Constant Explanation
		       beg	the beginning of a stream
		       end	the ending of a stream
		       cur	the current position of stream position  indica-
     tor

		       (typedef)
	event	       specifies event type
		       (enum)
	event_callback callback function type
		       (typedef)

Notes
	      Feature-test macro	 Value	  Std	       Feature
	__cpp_lib_fstream_native_handle 202306L (C++26) native handles support

Example
     // Run this code

      #include <fstream>
      #include <iostream>
      #include <string>

      int main()
      {
	  std::string filename = "Test.b";

	  // prepare a file to read
	  double d = 3.14;
	  std::ofstream(filename, std::ios::binary)
	      .write(reinterpret_cast<char*>(&d), sizeof d) << 123 << "abc";

	  // open file for reading
	  std::ifstream istrm(filename, std::ios::binary);
	  if (!istrm.is_open())
	      std::cout << "failed to open " << filename << '\n';
	  else
	  {
	      double d;
	      istrm.read(reinterpret_cast<char*>(&d), sizeof d); // binary input
	      int n;
	      std::string s;
	      if (istrm >> n >> s)				 // text input
		  std::cout  <<  "read back from file: " << d << ' ' << n << ' '
     << s << '\n';
	  }
      }

Output:
      read back from file: 3.14 123 abc

http://cppreference.com 	   2024.06.10		  std::basic_ifstream(3)

home | help