![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| commoner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Привет всем.
У меня такой вопрос. Почему после определенного количества обращений к объекту ifstream он перестает работать. Не реагируют никакие операторы. И это не зависит от количества обращений к файлу. Бьюсь над этим вопросом второй день. помогите кто сможет. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
commoner,
Показывай код. Чудес не бывает. |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
commoner,
::clear ? |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: нет Всего: 34 |
commoner, У меня такое уже было. Все оказалось, что происходила толи ошибка чтения, толи входной поток закончился и он полностью переставал работать.
|
|||
|
||||
| commoner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Итак таких циклов у меня штук 8; Могу сказать что если такой цикл запускается раз 16(сумма всех циклов во всех функциях) то все ок. Если же больше то tempStr перестает принимать какиелибо значения. И это не зависит от размера файла. т.е не зависит от использования >> оператора. Вопрос все еще открыт. Это сообщение отредактировал(а) commoner - 17.11.2006, 17:51 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Ты пробовал, как предлагал En_t_end - перед каждым seekg делать clear() ?
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: нет Всего: 34 |
Лично я отказался от использования потоков, т.к. родные функции дают больше свободы (имхо).
В программе есть проверка на исчерпывание файла? Можешь ли ты горантировать, что полученная строка будет вдлину меньше 100 символов? А вообще данный код мог бы и не приводить, т.к.он ни о чем не говорит. Приведи полный код программы, или обрежь все лишнее, чтобы было видно что ты делаешь. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
По моим наблюдениям, потоки могут давать некоторые временные задержки в критических случаях..., а вот чего в функциональности потоков нету такого, что было в родных функциях - albertn, приведи пример. Это сообщение отредактировал(а) JackYF - 17.11.2006, 18:10 |
|||
|
||||
| zabivator |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
А если поток закончиться раньше, чем будет найдено слово? --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
||||
|
|||||
| commoner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
После определенного момента tempStr вообще не принимает ничего, только tempStr[0] принимает значение 0.
не помогает даже закрытие и открытие файла! такое ощущение что ifstream просто вырубается. (странно звучит) |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
commoner, в третий раз спрашиваю - clear() поставил?
|
|||
|
||||
| commoner |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
да поставил, не помогло.
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: нет Всего: 34 |
В функциональности разницы практически никакой. Разница будет заключаться в ктом, какое количество символов придется написать чтобы сделать то или иное действие. Для простых выводов вполне приемлимо, а если надо вывести форматированный вывод, то столько всего надо написать, и еще включить дополнительный модуль! К тому-же форматированный ввод-вывод гораздо наглядней (опять же имхо) |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
zabivator Ну просто впиши "условие && !file.eof()"
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |