Консультация № 66061
08.12.2006, 08:47
0.00 руб.
0 3 2
Здравствуйте!
Пишу в BDS2006 С++ Builder.

Работаю с ofstream. В h файле определил
#include <fstream.h>
...
ofstream* LogOut;

В файле формы в void __fastcall TForm1::FormCreate(TObject *Sender)
пишу
LogOut = new ofstream( LogFi.c_str() , ios::out|ios::trunc );
LogOut << "Программа запущена" << endl;

Выходит сообщение об ошибке
[C++ Error] main.cpp(139): E2087 Illegal use of pointer
Не пойму, в чем дело. Подскажите.

Спасибо!

Обсуждение

Неизвестный
08.12.2006, 10:01
общий
это ответ
Здравствуйте, Clear2121!
Попробуйте так
LogOut = new ofstream( LogFi.c_str() , ios::out | ios::trunc | ios::in);
Кажется Вы забыли указать что в файл можно писать - ios::in
Неизвестный
08.12.2006, 10:12
общий
это ответ
Здравствуйте, Clear2121!

Оператор << определен в классе ofstream, а LogOut у Вас - указатель на него.
Попробуйте так:
(*LogOut) << "Программа запущена" << endl;

Удачи!
Неизвестный
11.12.2006, 07:00
общий
Sergey A. WedenskyСпасибо, помогло! Не обратил внимание, что в книгах определяется как ofstream LogOut, а я определяю как ofstream* LogOut;Еще раз спасибо!!!
Форма ответа