![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Ober |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Добрый вечер, объясните пожалуйста, почему при выполнении внешнего цикла while несколько раз, внутренний цикл while выполняется не больше одного раза, а в остальных случаях просто пропускается. Вроде и указатель ставлю на начало файла, и поток очищаю а он все равно не выполняется. Предположим, что transaction.txt, base.txt, new.txt уже созданы и в первых двух файлах больше чем по 2 записи.
За ранее спасибо. |
|||
|
||||
Estranged |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: нет Всего: 3 |
Сразу после baseFileIn.seekg( 0 ); написать streamoff offset = baseFileIn.tellg (); чисто ради шутки.
|
|||
|
||||
Ober |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Честно говоря шутки не понял )) |
|||
|
||||
Estranged |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: нет Всего: 3 |
Так узнаем текущую позицию чтения в файле base.txt.
baseFileIn.seekg( 0 ); streamoff offset = baseFileIn.tellg (); baseFileIn >> abase >> b >> cbase; Кроме того, до цикла, который не выполняется, читаются данные. Вдруг уже конец файла? baseFileIn.seekg( 0 ); streamoff offset = baseFileIn.tellg (); <- здесь ожидаем 0 baseFileIn >> abase >> b >> cbase; streamoff offset2 = baseFileIn.tellg (); <- здесь что? Конца файла не достигли случайно? while( !baseFileIn.eof() )//пока не конец базового файла ... |
|||
|
||||
vinick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 9.6.2005 Репутация: нет Всего: 22 |
В строке 21 вы очищаете не тот поток. это опечатка на форуме или в коде так же? Если второе, то замените на baseFileIn.clear()
|
|||
|
||||
Ober |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 11.3.2011 Репутация: нет Всего: нет |
Большое спасибо вам за помощь, это была моя ошибка, я очищал не тот поток и поэтому в BaseFileIn оставался признак конца файла. Это сообщение отредактировал(а) Ober - 27.8.2011, 19:25 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |