# StringStream in C++ for Decimal to Hexadecimal and back

• Difficulty Level : Expert
• Last Updated : 09 May, 2018

Stringstream is stream class present in C++ which is used for doing operations on a string. It can be used for formatting/parsing/converting a string to number/char etc.
Hex is an I/O manipulator that takes reference to an I/O stream as parameter and returns reference to the stream after manipulation.
Here is a quick way to convert any decimal to hexadecimal using stringstream:

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.
 `// CPP program to convert integer to``// hexadecimal using stringstream and``// hex I/O manipulator.``#include ``using` `namespace` `std;`` ` `int` `main()``{``    ``int` `i = 942;``    ``stringstream ss;``    ``ss << hex << i;``    ``string res = ss.str();``    ``cout << ``"0x"` `<< res << endl; ``// this will print 0x3ae``    ``return` `0;``}`

Output:

```0x3ae
```

If we want to change hexadecimal string back to decimal you can do it by following way:

 `// CPP program to convert hexadecimal to``// integer using stringstream and``// hex I/O manipulator.``#include ``using` `namespace` `std;`` ` `int` `main()``{``    ``string hexStr = ``"0x3ae"``;``    ``unsigned ``int` `x;``    ``stringstream ss;``    ``ss << std::hex << hexStr;``    ``ss >> x;``    ``cout << x << endl; ``// this will print 942``    ``return` `0;``}`

Output:

```942
```

My Personal Notes arrow_drop_up