std::basic_ifstream<CharT,Traits>::swap
From cppreference.com
< cpp | io | basic ifstream
void swap( basic_ifstream& other ); | (since C++11) | |
Exchanges the state of the stream with those of other.
This is done by calling basic_istream<CharT, Traits>::swap(other) and rdbuf()->swap(other.rdbuf()).
Contents |
[edit]Parameters
other | - | stream to exchange the state with |
[edit]Return value
(none)
[edit]Exceptions
May throw implementation-defined exceptions.
[edit]Example
Run this code
#include <fstream>#include <iomanip>#include <iostream>#include <string> bool create_stream(std::fstream& fs, conststd::string& path){try{std::fstream ts{path, ts.trunc| ts.in| ts.out};if(ts.is_open()){ ts.swap(fs);// stream objects are not copyablereturntrue;}}catch(...){std::cout<<"Exception!\n";}returnfalse;} void use_stream(std::fstream& fs){ fs.seekg(0);std::string data; fs >> data;std::cout<<"data: "<<std::quoted(data)<<'\n';} int main(){std::fstream fs;std::string path ="/tmp/test_file.txt";if(create_stream(fs, path)){ fs.write(path.c_str(), path.length()); use_stream(fs);}}
Possible output:
data: "/tmp/test_file.txt"
[edit]See also
(C++11) | moves the file stream (public member function) |
(C++11) | swaps two basic_filebuf objects (public member function of std::basic_filebuf<CharT,Traits> ) |