私はこれを試しましたが、うまくいきませんでした。
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
#include <iostream>
std::cout << someString << "\n";
または
printf("%s\n",someString.c_str());
基礎となるバッファにアクセスする必要があります。
printf("%s\n", someString.c_str());
または、cout << someString << endl;
を使用することをお勧めします(cout
を使用するには、#include <iostream>
が必要です)
さらに、using namespace std;
を使用してstd
名前空間をインポートするか、string
とcout
の両方の前にstd::
を付加することもできます。
string
およびcin
を使用するには、cout
および#include<string>
を使用する#include<iostream>
が必要です。 (答えを読んだとき、私はそれを得ませんでした)。動作するコードを次に示します。
#include<string>
#include<iostream>
using namespace std;
int main()
{
string name;
cin >> name;
string message("hi");
cout << name << message;
return 0;
}
パラメーターにstd :: stringを指定して "printf"を呼び出すことはできません。 「%s」は、Cスタイルの文字列char *またはchar []用に設計されています。 C++では、次のようにできます。
#include <iostream>
std::cout << YourString << std::endl;
absolutely printfを使用する場合は、文字列のchar *表現を提供する「c_str()」メソッドを使用できます。
printf("%s\n",YourString.c_str())
printf()
を使用する場合は、次のこともできます。
#include <stdio.h>