If you're using C++ there's no reason to use printf or the whole god awful family of C relics. Use a stream. Then you get type safety and you won't try reading return addresses off the stack to interpret as strings. Consider rewriting along the lines of:
int d = 20;
const std::string s( "Good Looking!" );
std::cout << "[" << d << "] Hello " << s << std::endl;
You'll find the code's as fast, probably faster and you've less chance of messing it up as the compiler will tell you.
PS: Missed the date as well... Talking to the dead isn't normally my thing.