![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Hawaii |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.6.2007 Репутация: нет Всего: нет |
Если данные после записи в файл прочитать их из файла, а потом вывести на экран, то они будут выводиться вместе с уже существующими данными, т.е. выходит так, что они попадают после чтения из файла в уже существующий связный список. Наверное, чтобы этого избежать, надо записать данные из файла в новый связный список. Как можно решить эту проблему, используя статические функции? |
|||
|
||||
DjoNIK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
Просто когда работает программа, то она работает с данными в ОП. Соответственно при создании и заполнении списка переменная li содержит данные в ОП. Когда ты записываеши данные в файл, то получаеться, что ты просто копируешь байты из ОП в файл. При чтении из файла данные копируються из файла в ОП, но у нас в ОП уже есть данные, т.е. к старым происходит прибавление новых данных(копии старых). Если же ты завершишь работу с программой, а потом запустишь её и прочитаешь из файла, то у тебя будет только одна копия - из файла, т.к ОП была пуста.
Если ты хочешь каждый раз при считывании получать только те данные, которые прочитал, то можно перед каждым считыванием затирать весь список. PS: Если не ошибаюсь это код из Лафоре -------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Что-что тебе надо?
Знакомый пример, кажется из лафорье. Во-первых тебе нужно сделать так, чтобы файл, в который ты сохраняешь, был не констатным, а ты мог другой выбирать. Тогда создай другой список, укажи файл заранее созданный и грузи список. Но на мой взгляд эти две фунции работы с файлом надо вынести из определения класса (но они все равно останутся интерфейсом класса, так как там будет упоминаться список). Эти фунция - это сериализация / десерилизация. И где твой деструктор? ![]()
Это сообщение отредактировал(а) Xenon - 19.8.2007, 21:11 |
|||
|
||||
Hawaii |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.6.2007 Репутация: нет Всего: нет |
Я хочу сделать так, чтобы объекты типа linklist не создавались в main() . Как в этой программе. Здесь данные в ОП не пересекаются с данными на диске при вводе/выводе.
|
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Создай в глобальной области видимости объект класса linklist
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |