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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fstream open в цыкле, виснет 
:(
    Опции темы
mcbobo
Дата 29.4.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

for (int i=0; i<kolvo; i++)
    s1.read(i);


Код

void student::read(int kolvo)
{
ifstream file;
file.open("student.txt", ios::in | ios::binary);
file.seekg(kolvo*sizeof(*this));
file.read((char *)this, sizeof(*this));
}

kolvo=count();
может и тут ошибка
Код

int student::count()
{
ifstream file;
file.open("student.txt", ios::binary);
file.seekg(0, ios::end);
return (int)file.tellg()/sizeof(*this);
}

так вот, компилю в VS2005 на ф7 всё компилит отлично, жму ф5 виснет
запускаю из папки debug всё отлично пашет
компилю как релиз - виснет при запуске
з.ы. убираю цикл всё тоже норм пашет

что не так?  smile 

Это сообщение отредактировал(а) mcbobo - 29.4.2007, 22:08
PM MAIL WWW ICQ   Вверх
archimed7592
Дата 29.4.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

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



уважаемый mcbobo, приносим свои извинения, но телепаты сегодня в отпуске...
могу сказать одно: если класс student содержит витуальные ф-ции или унаследован от класса, содержащего таковые, то 6-я строка ф-ции read творит большое зло и неудивительно почему виснет (так можно поступать только с POD-типами)...
ещё может влиять содержимое файла student.txt...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
codelord
Дата 29.4.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



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


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Daevaorn
Дата 29.4.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(codelord @  29.4.2007,  23:09 Найти цитируемый пост)
что мне не кажется замечательным множественное открытие файла без его закрытия,

деструктор потока сам закрывает файл.
Цитата(codelord @  29.4.2007,  23:09 Найти цитируемый пост)
но так как специфика функции не позволяет его закрывать (хотя.. ) короче смотри в сторону открытия его вне функции или открытия внутри функции тогда и закрытия там же

Лучше открыть один раз, а уже потом читать в цикле.
Цитата(mcbobo @  29.4.2007,  22:56 Найти цитируемый пост)
так вот, компилю в VS2005 на ф7 всё компилит отлично, жму ф5 виснетзапускаю из папки debug всё отлично пашеткомпилю как релиз - виснет при запускез.ы. убираю цикл всё тоже норм пашет

вот интересно, а где этот student.txt находится? 
PM MAIL WWW   Вверх
codelord
Дата 29.4.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



Цитата(Daevaorn @  29.4.2007,  18:18 Найти цитируемый пост)
Лучше открыть один раз, а уже потом читать в цикле

я разве с этим спорил ?



--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Любитель
Дата 29.4.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



codelord, деструктор ifstream всё закроет.

mcbobo, какие поля у твоего стьюдента? Каких типов?


--------------------
PM MAIL ICQ Skype   Вверх
codelord
Дата 29.4.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



Цитата(Daevaorn @  29.4.2007,  18:18 Найти цитируемый пост)
деструктор потока сам закрывает файл.

Цитата(Любитель @  29.4.2007,  18:28 Найти цитируемый пост)
codelord, деструктор ifstream всё закроет.

согласен, просто после FILE как то в глаза бросается.




--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
mcbobo
Дата 29.4.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

class student
{
public:
    char name[15];
    char surname[15];
    char otchestvo[15];
//    char fac[15];
    int god;
    int day;
    int month;

    struct session{
        char predmet[15];
        int ocenka;
    }ses[10][9];


    student();
    virtual ~student();
    void write(int num);
    void read(int kolvo);
    void del(int num);
    int count();
    void set_pos(int pos);

};

PM MAIL WWW ICQ   Вверх
Любитель
Дата 29.4.2007, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



mcbobo, ты ещё не ответил на хороший вопрос Daevaornа:
Цитата(Daevaorn @  29.4.2007,  22:18 Найти цитируемый пост)
вот интересно, а где этот student.txt находится? 




--------------------
PM MAIL ICQ Skype   Вверх
mcbobo
Дата 29.4.2007, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Любитель, в корне с экзешником
PM MAIL WWW ICQ   Вверх
Daevaorn
Дата 29.4.2007, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(mcbobo @  30.4.2007,  00:39 Найти цитируемый пост)
 в корне с экзешником

а ты в debug working directory настроил?
PM MAIL WWW   Вверх
mcbobo
Дата 29.4.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Daevaorn @ 29.4.2007,  23:46)
Цитата(mcbobo @  30.4.2007,  00:39 Найти цитируемый пост)
 в корне с экзешником

а ты в debug working directory настроил?

конешно нет )) я сёдня первый раз за vs сел, c 0 курсач пишу
так в дебаге терь компилится норм, в релизе терь ошибка

Код

Microsoft Visual Studio C Runtime Library has detected a fatal error in BaseofStud.exe.

Press Break to debug the program or Continue to terminate the program.

PM MAIL WWW ICQ   Вверх
Любитель
Дата 30.4.2007, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

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



Нажми брейк и посмотри куда вывалится. Если что - по колстэку поднимись до своих функций.


--------------------
PM MAIL ICQ Skype   Вверх
mcbobo
Дата 30.4.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



всё разобрался, спасибо всем огромное ))
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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