C++ IOS Library - Setf



Description

It is used to set specific format flags. The format flags of a stream affect the way data is interpreted in certain input functions and how it is written by certain output functions. See ios_base::fmtflags for the possible values of this function's arguments.

Declaration

Following is the declaration for ios_base::setf function.

set (1)	fmtflags setf (fmtflags fmtfl);
mask (2) fmtflags setf (fmtflags fmtfl, fmtflags mask);

The first form (1) sets the stream's format flags whose bits are set in fmtfl, leaving unchanged the rest, as if a call to flags(fmtfl|flags()).

The second form (2) sets the stream's format flags whose bits are set in both fmtfl and mask, and clears the format flags whose bits are set in mask but not in fmtfl, as if a call to flags((fmtfl&mask)|(flags()&~mask)).

Parameters

fmtfl − Format flags to be set. If the second syntax is used, only the bits set in both fmtfl and mask are set in the stream's format flags; the flags set in mask but not in fmtfl are cleared.

mask − Mask containing the flags to be modified.

Return Value

The format flags selected in the stream before the call.

Exceptions

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

Data races

Modifies the stream object. Concurrent access to the same stream object may cause data races.

Example

In below example explains about ios_base::setf function.

#include <iostream>     

int main () {
   std::cout.setf ( std::ios::hex, std::ios::basefield );  
   std::cout.setf ( std::ios::showbase );                  
   std::cout << 100 << '\n';
   std::cout.unsetf ( std::ios::showbase );                
   std::cout << 100 << '\n';
   return 0;
}

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

 0x64
64
ios.htm
Advertisements