stringstreamを使用しても問題はありませんが、swprintfを意識せずにwprintfを知っているのは驚くべきことです。printfは、printfやwprintfだけでなく、関数のファミリー全体です。
int printf( const char *format, ... );
int fprintf( FILE *stream, const char *format, ... );
int sprintf( char *buffer, const char *format, ... );
int snprintf( char *buffer, int buf_size, const char *format, ... );
int wprintf( const wchar_t* format, ... );
int fwprintf( FILE *stream, const wchar_t* format, ... );
int swprintf( char *buffer, const wchar_t* format, ... );
int vprintf( const char *format, va_list vlist );
int vfprintf( FILE *stream, const char *format, va_list vlist );
int vsprintf( const char *buffer, const char *format, va_list vlist );
int vsnprintf( char *buffer, int buf_size, const char *format, va_list vlist );
int vwprintf( const wchar_t* format, va_list vlist );
int vfwprintf( FILE* stream, const wchar_t* format, va_list vlist );(2)
int vswprintf( const wchar_t* buffer, const wchar_t* format, va_list vlist );