C++ IOS Library - copyfmt


Copies the values of all the internal members of rhs (except the state flags and the associated stream buffer) to the corresponding members of *this.

After the call, the following member functions return the same for rhs and *this −

element description
flags format flags
width field width
precision precision
getloc selected locale
iarray internal extensible array *
parray internal extensible array *
fill fill character
tie tied stream
exceptions exceptions mask (last to be copied, see below)


Following is the declaration for ios::copyfmt function.

ios& copyfmt (const ios& rhs);


rhs − Stream object whose members are copied to *this.

Return Value

It returns *this.


Basic guarantee − if an exception is thrown, the stream is in a valid state.

Data races

Modifies the stream object (*this), and accesses rhs.

Concurrent access to any of the objects may cause data races.


In below example explains about ios::copyfmt function.

#include <iostream>
#include <fstream>

int main () {
   std::ofstream filestr;
   filestr.open ("test.txt");

   std::cout.fill ('*');
   std::cout.width (10);
   filestr.copyfmt (std::cout);

   std::cout << 40;
   filestr << 40;

   return 0;

Let us compile and run the above program, this will produce the following result −