#c #filestream #iostream
#c #filestream #iostream
Вопрос:
Я хочу, чтобы следующие значения были записаны в файл с помощью 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]’ в двоичный ‘оператор<<‘
Ответ №1:
Поскольку вы имеете дело с FILE
, я бы сказал, что это ofstream
скорее ошибка, чем ostream
ошибка. 🙂 FILE
— это файловый ввод-вывод в стиле C, для которого operator <<
он не перегружен.
Вы должны использовать ofstream
объект, для которого operator <<
он перегружен в библиотеке.
#include<fstream>
ofstream File("myfile.txt");
File<< "r "<<" " <<"ggjjsss" <<'_'<<"gggjj"<< " " << "HLLO " <<endl;
Комментарии:
1. Я получаю следующую ошибку, что это значит?? или: переменная ‘std:: ofstream File’ имеет инициализатор, но неполный тип
2. #include <fstream> должен помочь.
3. @Invictus, ты
#include<fstream>
уже наверху?
Ответ №2:
FILE * не является ostream в смысле стандартной библиотеки C . Вместо этого используйте fstream (или ofstream). Посмотрите здесь для примера: cplusplus.com ссылка на fstream
Комментарии:
1. Есть ли какой-нибудь способ, которым я могу использовать ostream для записи в файл??
2. @Invictus,
<fstream>
библиотека уже предоставляетofstream
(иfstream
,ifstream
); которые предназначены для обработки файлов C .
Ответ №3:
Вы в замешательстве. В классическом смысле C «поток» — это просто то, что вы можете читать / записывать. В c «потоки» — это специальные объекты, которые соответствуют очень специфическому интерфейсу.
Оператор потока << доступен только в C , поэтому было бы очень логично не ожидать, что он будет работать с классическими библиотеками C