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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_fstream::basic_fstream - std::basic_fstream::basic_fstream

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

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

	  std::ios_base::openmode mode = ios_base::in|ios_base::out );
	  basic_fstream(	  basic_fstream&&	    other	    );
       (6) (since C++11)
	  basic_fstream(     const     basic_fstream&	  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) (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_fstream(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::fstream f0;
	    std::fstream f1("test.bin",	std::ios::binary);
	    std::string	name = "example.txt";
	    std::fstream f2(name);
	    std::fstream 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_iostream<CharT,Traits>)

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

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

home | help