Restore the state of std::cout after manipulating it
c++, iostream
Solution
you need to `#include <iostream>` or `#include <ios>` then when required:
std::ios_base::fmtflags f( cout.flags() );
//Your code here...
cout.flags( f );
You can put these at the beginning and end of your function, or check out this answer on how to use this with RAII.
Problem
Suppose I have a code like this: ``` void printHex(std::ostream& x){ x<<std::hex<<123; } .. int main(){ std::cout<<100; // prints 100 base 10 printHex(std::cout); //prints 123 in hex std::cout<<73; //problem! prints 73 in hex.. } ``` My question is if there is any way to 'restore' the state of `cout` to its original one after returning from the function? (Somewhat like `std::boolalpha` and `std::noboolalpha`..) ? Thanks.