printf は C 関数であり、std::string は C クラスです。これが、エラーが発生する理由です。
これを修正するには、std::string の c_str() メソッドを使用して、printf に渡すことができる C スタイルの文字列を取得できます。例:
#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; }
これは出力します:
Come up and C++ me some time. Follow this command: Press ENTER to quit program!
c_str() を使用したくない場合は、文字列ストリーム クラスを使用して出力をフォーマットすることもできます。例:
#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; }
これは、前の例と同じように出力されます。
以上がC で std::string で printf を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。