Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > fstream библиотека


Автор: Oik741 11.11.2009, 20:36
Добрый день, подскажите как(желательно код) записать в файл объект(в базе уже могут существовать объекты сохранённые раннее) а потом прочитать нужный мне объект, n-ный по счёту используя библиотеку fstream

Автор: sdukshis 11.11.2009, 20:59
Если файл бинарный и все объекты могут поместиться в фиксированный объем байтов, то можно так:
Научить все используемые классы представлять себя в виде набора байтов (char*) и использовать неформатируюемый вывод f.write().

Для считывания n-ого объекта отсчитать от начала файла n*фиксированный размер.
Считать считать фиксированный размер байтов и научить класс инициализироваться на основе прочитанного набора байтов.

Если файл текстовый, то можно проще
Каждый объект представляется одной строкой. Далее просто перегрузить операторы потоковые ввода и вывода для нужного объекта.

Автор: Oik741 11.11.2009, 22:48
а если не затруднит можешь написать код как пример?)

Автор: bsa 12.11.2009, 00:05
Код
struct Entry{
...
};
...

fstream file("file.dat", std::ios::binary);

Entry array[100];
...
file.write(reinterpret_cast<const char*>(&array[20]), sizeof(Entry));

Автор: Oik741 12.11.2009, 09:58
не сочтите за наглость, а на чтение?)

Автор: Alca 12.11.2009, 11:29
http://www.cplusplus.com/reference/iostream/istream/read/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)