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

FreeBSD Manual Pages

  
 
  

home | help
std::basic_...sic_ifstream(3) C++ Standard Libarystd::basic_...sic_ifstream(3)

NAME
       std::basic_ifstream::basic_ifstream   -	std::basic_ifstream::basic_if-
       stream

Synopsis
	  basic_ifstream();
       (1)
	  explicit	basic_ifstream(	     const	 char*	     filename,
       (2)
	  std::ios_base::openmode mode = ios_base::in );
	  explicit basic_ifstream( const std::filesystem::path::value_type*
	  filename,
       (3) (since C++17)
	  std::ios_base::openmode mode = ios_base::in );
	  explicit     basic_ifstream(	   const     std::string&    filename,
       (4) (since C++11)
	  std::ios_base::openmode mode = ios_base::in );
	  template< class FsPath >

	  explicit	basic_ifstream(	     const	FsPath&	     filename,
       (5) (since C++17)

	  std::ios_base::openmode mode = ios_base::in );
	  basic_ifstream(	   basic_ifstream&&	     other	    );
       (6) (since C++11)
	  basic_ifstream(    const    basic_ifstream&	 rhs)	 =     delete;
       (7) (since C++11)

	  Constructs new file stream.

	  1)  Default  constructor: constructs a stream	that is	not associated
       with a file:
	  default-constructs the std::basic_filebuf and	 constructs  the  base
       with the	pointer
	  to this default-constructed std::basic_filebuf member.
	  2-3) First, performs the same	steps as the default constructor, then
       associates the
	  stream  with	a  file	 by  calling  rdbuf()->open(filename,  mode  |
       std::ios_base::in) (see
	  std::basic_filebuf::open for the details  on	the  effects  of  that
       call). If the open()
	  call returns a null pointer, sets setstate(failbit).
	  Overload  (3)	 is only provided if std::filesystem::path::value_type
       is not char.
	  (since C++17)
	  4-5) Same as basic_ifstream(filename.c_str(),	mode).
	  (5)  participates  in	 overload  resolution  only   if   FsPath   is
       std::filesystem::path.
	  (since C++17)
	  6)  Move  constructor.  First,  move-constructs  the base class from
       other (which does
	  not affect the rdbuf() pointer), then	move-constructs	 the  std::ba-
       sic_filebuf member,
	  then calls this->set_rdbuf() to install the new basic_filebuf	as the
       rdbuf() pointer
	  in the base class.
	  7) The copy-constructor is deleted: this class is not	copyable.

Parameters
	  filename - the name of the file to be	opened
		     specifies	stream open mode. Following constants and bit-
       wise OR between
		     them may be used:

		     Constant Explanation
	  mode	   - app      seek to the end of stream	before each write
		     binary   open in binary mode
		     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
	  other	   - another file stream to use	as source

Example
       // Run this code

	#include <fstream>
	#include <utility>
	#include <string>
	int main()
	{
	    std::ifstream f0;
	    std::ifstream f1("test.bin", std::ios::binary);
	    std::string	name = "example.txt";
	    std::ifstream f2(name);
	    std::ifstream f3(std::move(f1));
	}

	 Defect	reports

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

	     DR	      Applied	 to		  Behavior    as     published
       Correct behavior
	  LWG	3430   C++17	    std::filesystem::path   overload   led  to
       avoided by making it
			      unwanted	conversions			     a
       template

See also
	  open		opens a	file and associates it with the	stream
			(public	member function)
	  open		opens a	file and configures it as the associated char-
       acter sequence
			(public	   member    function	 of   std::basic_file-
       buf<CharT,Traits>)
	  set_rdbuf	replaces the rdbuf without clearing its	error state
			(protected member function)
	  constructor	constructs the object
			(public	    member	function      of      std::ba-
       sic_istream<CharT,Traits>)

http://cppreference.com		  2022.07.31	 std::basic_...sic_ifstream(3)

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

home | help