No, el string de c++ es un objeto y no puede salir por printf tal cual, tienes que 'sacar' su cadena de texto con el metodo c_str o bien usar cout para la salida estandar
Código:
string palo = "hola";
//con printf
printf("%s", palo.c_str());
//con cout
cout << palo;
Saludos
vosk