次のようにcout
string
できない理由:
string text ;
text = WordList[i].substr(0,20) ;
cout << "String is : " << text << endl ;
これを行うと、次のエラーが表示されます。
エラー2エラーC2679:バイナリ '<<':タイプ 'std :: string'の右側のオペランドをとる演算子が見つかりません(または許容可能な変換がありません)c:\ users\mollasadra\documents\visual studio 2008\projects\barnamec\barnamec\barnamec.cpp 67 barnamec **
これでも機能しないのは驚くべきことです:
string text ;
text = "hello" ;
cout << "String is : " << text << endl ;
含める必要があります
#include <string>
#include <iostream>
どういうわけかcoutの名前空間std
を参照する必要があります。たとえば、挿入
using std::cout;
using std::endl;
関数定義、またはファイルの上。
コードにはいくつかの問題があります。
WordList
はどこにも定義されていません。使用する前に定義する必要があります。cout
またはendl
を使用する前に、文字列クラスとiostreamを使用する前に#include <string>
が必要です。string
、cout
、およびendl
はstd
名前空間に存在するため、using
ディレクティブを使用して最初にスコープに入れない限り、std::
をプレフィックスとして付けてアクセスすることはできません。上記の答えは良いですが、文字列を追加したくない場合は、次を使用できます
ostream& operator<<(ostream& os, string& msg)
{
os<<msg.c_str();
return os;
}