![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Столкнулся с такой проблемой:
Написал программу чтения/записи в бинарный файл, записывает все значения (марка,модель,год,пробег) нормально,но читает только первую запись которая писалась под 0 смещением,потом при чтении хоть 10 смещение вводи все равно выдает запись по первому. Пересмотрел весь код ничего подозрительного не нашел,помогите решить проблему.
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
а get_int то что нужно возвращает?
а в файле все записи есть? а после того как считали из файла и файл закрыли перед следующим чтением кто-нибудь его открывает? |
|||
|
||||
niXman |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: нет Всего: 0 |
Должно быть:
Добавлено через 54 секунды Это там где "Read"
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
||||
|
|||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
Нет,там seekp пробовал seekg тот же результат что и с первым.
get_int возвращает число типа int а если не введено ничего возвращает то что в нее передали. Вот по отдельность запись и чтение работает отлично,а вместе чет не то,что за ошибка такая,немогу разобрать. |
|||
|
||||
niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: нет Всего: 0 |
http://www.cplusplus.com/reference/iostream/istream/seekg/ http://www.cplusplus.com/reference/iostream/ostream/seekp/ --------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
спс за ссылки но ничего я там понять не смог,я пробовал seekg но программа все равно работает также как я описал в первом посте.
я использую vs2008. |
|||
|
||||
niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: нет Всего: 0 |
Предложение не решающее проблему, но все же: Объедени все поля в структуру, проще читать и писать в файл.
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
так как же решить проблему, ведь каждый использует бинарные файлы,решение должно быть. |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
![]()
Это сообщение отредактировал(а) zim22 - 24.10.2009, 10:43 |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
спс за подсказки,а моим методом что невозможно???
|
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
это не подсказки. это твоя решённая задача. метод - набросать весь код в одну непонятную кучу? |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
был бы очень благодарен,если б вы объяснили в чем проблема,почему не работает,что куча кода это я понял,а что в этой куче вызывает некорректную работу?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Dikey
Начнем с того, что тебе правильно сказали про seekp. seekp - это указатель записи (put), а seekg - чтения (get). Т.е. использование seekp перед чтением скорее всего говорит об ошибке.
Ты прочитал 20 байт из 21 в model, а где завершающий символ '\0'? |
|||
|
||||
Dikey |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 6.3.2008 Где: Украина г.Изюм Репутация: нет Всего: нет |
bsa, спасибо,все исправил как вы мне описали,теперь программа работает.
По поводу seekp . Вот решение одного из упражнений,работает на 100% и применяется seekp и при чтении, и при записи.
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Dikey, знаешь, иногда можно и перекресток на красный свет проехать... Вот только никто тебе гарантий не даст, что следующий перекресток не будет для тебя последним.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |