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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> потоки сохранение и считывания файла [C++] 
V
    Опции темы
halfnode
Дата 11.2.2011, 03:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подниму тему, дабы не плодить.
Разбираюсь в потоках. 
Объясните пожалуйста, что не так в фукции read()?
write() пишет в файл все на ура. По крайней мере, размер файла соответствует тому, сколько объектов в него записано.
А вот чтение не проходит. Прям беда. Притом ошибка происходит уже после выполнения if(inFile.eof())
код, собственно:
Код

void Distance::write()
{
    ofstream outFile;
    outFile.open("DIST.DD", ios::trunc|ios::binary);
    if(!outFile)
    {cerr << "\nНевозможно открыть файл для записи данных.\n"; _getch(); exit(1);}

    for(int i=0; i<count; i++)
    {
        outFile.write((char*)(arrap[i]), sizeof(Distance));
    }
    if(!outFile)
    {cerr << "\nЗапись в файл невозможна.\n"; _getch(); exit(1);}
    outFile.close();
}

void Distance::read()
{
    ifstream inFile;
    inFile.open("DIST.DD", ios::binary);
    if(!inFile)
    {cerr << "\nНевозможно открыть файл для чтения данных.\n"; _getch(); exit(1);}
    int i=0;
    while(true)
    {
        arrap[i] = new Distance;
        inFile.read((char*)arrap[i], sizeof(Distance));
        if(inFile.eof())
            break;
        i++;
    }
    if(!inFile)
    {cerr << "\nНевозможно произвести чтение из файла.\n"; _getch(); exit(1);}
    inFile.close();
}


Уже даже не знаю что и думать. Где -то завис.
PM MAIL   Вверх
xvr
Дата 11.2.2011, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Для потоков EOF состояние - это ошибка. Вот он вам в 32 строке и говорит, что у него ошибка (по программе - ожидаемая, но ifstream этого не знает  smile )

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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