CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3

Threaded View

  1. #1
    Join Date
    Jun 2001

    C++ String: How to convert a numeric type to a string?

    Q: How to convert a numeric type to a string?


    The old C method (deprecated):

    char c[10];   // simply large enough - don't forget the 
                  // extra byte needed for the trailing '\0' 
    int i = 1234;
    sprintf(c, "%d", i);
    See 'sprintf()' in e.g. MSDN for further details.

    Using 'CString':

    int i = 1234;
    CString cs;
    cs.Format("%d", i);
    The format specifiers are the same as for 'sprintf()'. See the 'CString' documentation in MSDN - it is fairly straight forward.

    A word of warning: mismatching the format specifiers ('%d') and the actually passed parameters will lead to unpredictable results, both for 'sprintf()' and for 'CString::Format()'.

    The C++ way:

    Following sample shows a template function that uses Standard C++ classes to complete the task:

    #include <string>
    #include <sstream>
    #include <iostream>
    template <class T>
    std::string to_string(T t, std::ios_base & (*f)(std::ios_base&))
      std::ostringstream oss;
      oss << f << t;
      return oss.str();
    int main()
      // the second parameter of to_string() should be one of 
      // std::hex, std::dec or std::oct
      std::cout<<to_string<long>(123456, std::hex)<<std::endl;
      std::cout<<to_string<long>(123456, std::oct)<<std::endl;
      return 0;
    /* output:
    This method is not only very elegant, but also type safe, because the compiler will pick the proper 'std::ostringstream::operator <<()' at compile time, according to the operand type.

    Last edited by Andreas Masur; July 24th, 2005 at 12:03 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Windows Mobile Development Center

Click Here to Expand Forum to Full Width

On-Demand Webinars (sponsored)

We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.