Search code examples
c++c++11printfstring-formatting

snprintf c++ alternative


How can I convert this code from C into C++ ?

char out[61]; //null terminator
for (i = 0; i < 20; i++) {
    snprintf(out+i*3, 4, "%02x ", obuf[i])
}

I can't find any alternative for snprintf.


Solution

  • Use stringstream class from <sstream>.

    E.g.:

    #include <iostream>
    #include <iomanip>
    #include <sstream>
    #include <string>
    using namespace std;
    
    int main()
    {
        stringstream ss;
        for (int i = 0; i < 20; i++) {
            ss << setw(3) << i;
        }
        cout << "Resulting string: " << endl;
        cout << ss.str() << endl;
        printf("Resulting char*: \n%s\n", ss.str().c_str() );
        return 0;
    }