c++integerstdstring

Convert a number to a string with specified length in C++


I have some numbers of different length (like 1, 999, 76492, so on) and I want to convert them all to strings with a common length (for example, if the length is 6, then those strings will be: '000001', '000999', '076492').

In other words, I need to add correct amount of leading zeros to the number.

int n = 999;
string str = some_function(n,6);
//str = '000999'

Is there a function like this in C++?


Solution

  • or using the stringstreams:

    #include <sstream>
    #include <iomanip>
    
    std::stringstream ss;
    ss << std::setw(10) << std::setfill('0') << i;
    std::string s = ss.str();
    

    I compiled the information I found on arachnoid.com because I like the type-safe way of iostreams more. Besides, you can equally use this code on any other output stream.