CFile fstream что лучше ?
Очень интересно узнать мнение знающих людей. Чем отличается класс CFile от старого доброго fstream в чём его приимущества , недостатки если есть и вобще стоит ли им пользоваться для работы с файлами.
Доброго времени суток всем специалистам в MFC.
Очень интересно узнать мнение знающих людей. Чем отличается класс CFile от старого доброго fstream в чём его приимущества , недостатки если есть и вобще стоит ли им пользоваться для работы с файлами.
Я не специалист в MFC, но всё же пара слов по поводу удобства использования CFile vs. CArchive.
Документация по MFC утверждает, что следует использовать архитектуру документ/вид, т.к. она такая замечательная... Аналогом fstream в MFC, на сколько я понимаю, является всё же CArchive.
С ним, как и с файловыми потоками, можно использовать операторы << и >>. Но что мне не нравится, так это отсутствие (на сколько я знаю; а на этом форуме на вопрос по этому поводу мне не ответили) в CArchive функции-аналога fstream::unget. И вообще, CArchive по возможностям беднее fstream. Но он соответствует целям, с которыми его полагается использовать в MFC, значит в общем случае его следует использовать, а с ним и CFile. Особенно в аспекте механизма сериализации он очень удобен: написал функцию Serialize для класса, и сериализируй объекты его типа сколько хочешь через CArchive посредством оператора <<.
Что же до CFile, то в нём есть всё, что от файла требуется: открыть, прочитать, записать, получить информацию о файле, закрыть.
Изложенное выше является субъективным мнением излагавшего.