![]() |
|
Модераторы: bsa |
![]()
|
|
| Сашок |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Прога определяет есть ли заданное слово в словаре. Всё корректно работает до тех пор пока не доходим до конца файла. Например, введем при вызове функции неверное слово, тогда произойдет просмотр всего файла и по признаку его конца сообщится что слова нет в словаре и далее при вызове хоть с верным словом, хоть с неверным, будет результат что слово отсутствует.
Я дебагером походил и вроде проблема в том, что если в какой то момент был достигнут конец файла, то seekg() не возвращяет указатель считывания на начало файла и поэтому возвращается false в функции in_slovar(), тк мы находимся в конце файла. Если кто сможет разьяснить в чем дело буду благодарен.
|
|||
|
||||
| andrew_121 |
|
||||||||||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Сашок, Нужно вот так:
И еще. Ты пишешь на С++, почему такие декларации?
Так лучше:
И это:
Перепиши вот так:
Это сообщение отредактировал(а) andrew_121 - 11.2.2009, 09:35 -------------------- Удалил аккаунт. Прощайте! |
||||||||||
|
|||||||||||
| Сашок |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
string это хорошо, но это не главное. Я переписал но оно по прежнему не работает.
После запроса слова "ящи", которого нет в словаре, все дальнейшие вызовы так же оказываются false. А чем моя функция от новой отличается не очень понял. Это сообщение отредактировал(а) Сашок - 11.2.2009, 00:18 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Естественно! Нужно по условию (слова нет) перепозиционировать файл на начало. Тем, что тут сначала проверяется условие, а затем выполняется действие. Это сообщение отредактировал(а) andrew_121 - 11.2.2009, 09:37 -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Сашок |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
А разьве перепозиционированием не занимается функция seekg() ?
Если нет то как это сделать? Про отличие я ступил, верно говорите. Хотя если файл не пуст то сойдут оба варианта( а он не пуст). Это сообщение отредактировал(а) Сашок - 11.2.2009, 00:39 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Вот тут уже я ступил ))) Пора спатки...день был тяжелый... -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Не верно. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Когда файл дочитывается до конца у него выставляется флаг eof, который нужно сбрасывать вручную (см метод clear), иначе все функции работы с файлом (включая seekg) будут ломаться
|
|||
|
||||
| Сашок |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
xvr, спасибо! Я думал что он автоматом сбрасывается. Теперь всё работает
andrew_121, работают верно оба варианта цикла, я проверил) |
|||
|
||||
![]()
|
| Правила форума "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. |