Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с ifstream, мистика 
:(
    Опции темы
commoner
Дата 17.11.2006, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Привет всем.
У меня такой вопрос. Почему после определенного количества обращений к объекту ifstream он перестает работать. Не реагируют никакие  операторы.
И это не зависит от количества обращений к файлу.
Бьюсь над этим вопросом второй день. помогите кто сможет. 

PM MAIL   Вверх
Daevaorn
Дата 17.11.2006, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



commoner, 
Показывай код. Чудес не бывает.
PM MAIL WWW   Вверх
En_t_end
Дата 17.11.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



commoner, 
::clear ?
PM MAIL ICQ Skype GTalk Jabber   Вверх
albertn
Дата 17.11.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: нет
Всего: 34



commoner, У меня такое уже было. Все оказалось, что происходила толи ошибка чтения, толи входной поток закончился и он полностью переставал работать.
PM WWW ICQ   Вверх
commoner
Дата 17.11.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Код

//открываю так , кстати file объявляется в public: моего класса.
ifstream file("***.***")
//далее идут функции где используется объект file
// очень часто  в разных функциях можно увидеть циклы типа:
char tempStr[100];
file.seekg(0);
for (int i=1;i<=COUNT_OBJECTS;i++)
{
     do
     {file>>tempStr;}
      while(условие нахождения определенного слова в файле);
//
}

    Итак таких циклов у меня штук 8;
    Могу сказать что если такой цикл запускается раз 16(сумма всех циклов во всех функциях) то все ок.
Если же больше то tempStr перестает принимать какиелибо значения.
И это не зависит от размера файла. т.е не зависит от использования >> оператора.
     Вопрос все еще открыт.


Это сообщение отредактировал(а) commoner - 17.11.2006, 17:51
PM MAIL   Вверх
JackYF
Дата 17.11.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Ты пробовал, как предлагал En_t_end - перед каждым seekg делать clear() ?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
albertn
Дата 17.11.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: нет
Всего: 34



Лично я отказался от использования потоков, т.к. родные функции дают больше свободы (имхо).
В программе есть проверка на исчерпывание файла?
Можешь ли ты горантировать, что полученная строка будет вдлину меньше 100 символов?

А вообще данный код мог бы и не приводить, т.к.он ни о чем не говорит. Приведи полный код программы, или обрежь все лишнее, чтобы было видно что ты делаешь.
PM WWW ICQ   Вверх
JackYF
Дата 17.11.2006, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(albertn @  17.11.2006,  17:56 Найти цитируемый пост)
Лично я отказался от использования потоков, т.к. родные функции дают больше свободы (имхо).


По моим наблюдениям, потоки могут давать некоторые временные задержки в критических случаях..., а вот чего в функциональности потоков нету такого, что было в родных функциях - albertn, приведи пример.



Это сообщение отредактировал(а) JackYF - 17.11.2006, 18:10


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
zabivator
Дата 17.11.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 7.6.2006
Где: нск

Репутация: 1
Всего: 2



Цитата(commoner @ 17.11.2006,  17:48)
Код

     do
     {file>>tempStr;}
      while(условие нахождения определенного слова в файле);


А если поток закончиться раньше, чем будет найдено слово?
--------------------
#include <zabivator>int main( int, char * [] ){   while( Zabivator::жив() ) Zabivator::моск()++;   return 0;}
PM MAIL WWW ICQ   Вверх
commoner
Дата 17.11.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



После определенного момента tempStr вообще не принимает ничего, только tempStr[0] принимает значение 0.
не помогает даже закрытие и открытие файла!  smile 
   такое ощущение что ifstream просто вырубается. (странно звучит)
PM MAIL   Вверх
JackYF
Дата 17.11.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



commoner, в третий раз спрашиваю - clear() поставил?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
commoner
Дата 17.11.2006, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



да поставил, не помогло. smile
PM MAIL   Вверх
albertn
Дата 18.11.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 368
Регистрация: 17.7.2006
Где: г. Ставрополь

Репутация: нет
Всего: 34



Цитата(JackYF @  17.11.2006,  18:10 Найти цитируемый пост)
По моим наблюдениям, потоки могут давать некоторые временные задержки в критических случаях..., а вот чего в функциональности потоков нету такого, что было в родных функциях - albertn, приведи пример.
В функциональности разницы практически никакой. Разница будет заключаться в ктом, какое количество символов придется написать чтобы сделать то или иное действие. Для простых выводов вполне приемлимо, а если надо вывести форматированный вывод, то столько всего надо написать, и еще включить дополнительный модуль!
К тому-же форматированный ввод-вывод гораздо наглядней (опять же имхо)
PM WWW ICQ   Вверх
Xenon
Дата 18.11.2006, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



zabivator Ну просто впиши "условие && !file.eof()"


--------------------
user posted image  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.