Maison >développement back-end >C++ >Comment puis-je utiliser printf avec un std::string en C ?
printf est une fonction C et std::string est une classe C. C'est pourquoi vous obtenez l'erreur.
Pour résoudre ce problème, vous pouvez utiliser la méthode c_str() de std::string pour obtenir une chaîne de style C que vous pouvez transmettre à printf. Par exemple :
#include <iostream> #include <string> #include <stdio.h> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; printf("Follow this command: %s", myString.c_str()); cin.get(); return 0; }
Cela affichera :
Come up and C++ me some time. Follow this command: Press ENTER to quit program!
Si vous ne souhaitez pas utiliser c_str(), vous pouvez également utiliser la classe string stream pour formater votre sortie. Par exemple :
#include <iostream> #include <string> #include <sstream> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; ostringstream oss; oss << "Follow this command: " << myString; printf("%s", oss.str().c_str()); cin.get(); return 0; }
Ceci donnera le même résultat que l'exemple précédent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!