printf ialah fungsi C dan std::string ialah kelas C. Itulah sebabnya anda mendapat ralat.
Untuk membetulkannya, anda boleh menggunakan kaedah c_str() std::string untuk mendapatkan rentetan gaya C yang boleh anda hantar ke printf. Contohnya:
#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; }
Ini akan mengeluarkan:
Come up and C++ me some time. Follow this command: Press ENTER to quit program!
Jika anda tidak mahu menggunakan c_str(), anda juga boleh menggunakan kelas aliran rentetan untuk memformatkan output anda. Contohnya:
#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; }
Ini akan menghasilkan output yang sama seperti contoh sebelumnya.
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Menggunakan printf dengan std::string dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!