ostreamエラー。誰でもこれをデバッグできますか?

私はostreamを使用してファイルに書き込まれる以下の値をしたいですか?

int main ()
{
  FILE * pFile;
  pFile = fopen ("myfile.txt","w");
  if (pFile!=NULL)
  {
    fputs ("fopen example",pFile);
    fclose (pFile);
  }
  pFile<< "r "<<" " <<"ggjjsss" <<'_'<<"gggjj"<< " " << "HLLO " <

I am getting the following error.. error: invalid operands of types 'FILE*' and 'const char [3]' to binary 'operator<<'

1

3 答え

FILE * is not a ostream in the sense of C++'s standard library. Use fstream instead (or ofstream). Look here for an example: cplusplus.com's fstream reference

2
追加された
ostreamを使ってファイルに書き込む方法はありますか?
追加された 著者 Invictus,
@Invictus、 ライブラリは既に ofstream fstream ifstream )を提供しています。これはC ++ファイル処理のためのものです。
追加された 著者 iammilind,

Since you are dealing with FILE, I would say it's an ofstream error rather than ostream error. :) FILE is a C-style file i/o for which operator << is not overloaded.

You should use ofstream object for which the operator << is overloaded in the library.

#include

ofstream File("myfile.txt");
File<< "r "<<" " <<"ggjjsss" <<'_'<<"gggjj"<< " " << "HLLO " <
2
追加された
私は次のエラーを受けています。これはどういう意味ですか?または:変数 'std :: ofstream File'に初期化子がありますが、型が不完全です
追加された 著者 Invictus,
#include が役立ちます。
追加された 著者 Patrick B.,
@Invictus、一番上に#include したことがありますか?
追加された 著者 iammilind,

あなたが混乱しています。古典的なCの意味では、 "ストリーム"はあなたが読み書きできるものです。 C ++では、 "ストリーム"は特別なオブジェクトであり、非常に特殊なインターフェイスに準拠しています。

Stream operator << is available only in C++, therefore it would very logical not to expect it to work on classic C libraries

1
追加された