ошибка остриминга. Кто-нибудь может отладить это?

Я хочу, чтобы следующие значения были записаны в файл с помощью 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]' для двоичного 'operator‹‹'


person Invictus    schedule 28.10.2011    source источник


Ответы (3)


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

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

#include<fstream>

ofstream File("myfile.txt");
File<< "r "<<" " <<"ggjjsss" <<'_'<<"gggjj"<< " " << "HLLO " <<endl;
person iammilind    schedule 28.10.2011
comment
Я получаю следующую ошибку, что это значит?? или: переменная 'std::ofstream File' имеет инициализатор, но неполный тип - person Invictus; 28.10.2011
comment
#include ‹fstream› должен помочь. - person Patrick B.; 28.10.2011
comment
@Invictus, ты #include<fstream> наверху? - person iammilind; 28.10.2011

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

person Patrick B.    schedule 28.10.2011
comment
Есть ли способ использовать ostream для записи в файл?? - person Invictus; 28.10.2011
comment
@Invictus, библиотека <fstream> уже предоставляет ofstreamfstream, ifstream); которые предназначены для обработки файлов C++. - person iammilind; 28.10.2011

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

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

person friendzis    schedule 28.10.2011