Following short C++ snippet presents how to format number using string stream and save it to std::string object. It is an equivalent to the sprintf function from C library.
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
#include <cstdio>
int main()
{
const long num(789);
// Format
std::ostringstream os;
os << std::setw(9)
<< std::setfill('0')
<< std::right
<< num;
// Save
std::string data(os.str());
// Display
std::cout << data << std::endl;
return 0;
}