ошибка ostream. Кто-нибудь может отладить это? - PullRequest
1 голос
/ 28 октября 2011

Я хочу, чтобы следующие значения были записаны в файл с использованием ostream ???

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

Я получаю следующую ошибку .. ошибка: недопустимые операнды типов 'FILE *' и 'const char [3]' в двоичный оператор '<<' </p>

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Поскольку вы имеете дело с FILE, я бы сказал, что это ошибка ofstream, а не ostream.:) FILE - это файл ввода-вывода в стиле C, для которого operator << не перегружен.

Вам следует использовать ofstream объект, для которого operator << перегружен в библиотеке.

#include<fstream>

ofstream File("myfile.txt");
File<< "r "<<" " <<"ggjjsss" <<'_'<<"gggjj"<< " " << "HLLO " <<endl;
2 голосов
/ 28 октября 2011

FILE * не является ostream в смысле стандартной библиотеки C ++. Вместо этого используйте fstream (или ofstream). Посмотрите здесь пример: ссылка fplusplus.com fstream

1 голос
/ 28 октября 2011

Вы в замешательстве. В классическом C-смысле «поток» - это просто то, из чего вы можете читать / писать. В c ++ «потоки» - это специальные объекты, которые соответствуют очень специфическому интерфейсу.

Оператор потока << доступен только в C ++, поэтому было бы логично не ожидать, что он будет работать с классическими библиотеками C </p>

...