Как получить указатель на файл?

Язык C при работе с файлами использует указатель на файл, то же самое делают и библиотеки, написанные на нём.
Но C++ использует ООП вроде как без этого указателя.

Может, я что-то пропустил, и указатель можно получить из объекта?
К крайнем случае, если FILE - это структура, то возможно ли как-то эту структуру получить/сгенерировать из объекта?

Не подключать же 2 библиотеки для работы с файлами... Хотя можно вернуться в C-версии

Мой случай - libpng.
  • Вопрос задан
  • 2565 просмотров
Решения вопроса 2
Судя по аналогичному вопросу, стандартного способа получить FILE* из std::fstrream не существует. Но существуют хаки, смотрите ссылку.
Ответ написан
risik
@risik
Программист
В С++ рекомендуется использовать iostream (cin, cout, etc). Это совершенно другая библиотека, которая не имеет прямого отношения к stdio (FILE* etc). И, в общем случае, они никак не совместимы друг с другом.

Однако, Вас никто не принуждает использовать iostream в Вашем С++ проекте. Используйте C++ + stdio. Проблема будет если Вам надо использовать две разных библиотеки, одна из которых принимает FILE *, а другая iostream, и Вам для чего-то нужно передать один и тот же файл из одной в другую.

ктстаи, праивльнее использовать в С++
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AxisPod
@AxisPod
Дык а в чём проблема, код всё равно лежит в стандартной либе, с которой и так линкуется. Юзайте обе, проблемы в этом никакой нет, код всё равно прилинкован.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы