Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92

Сохранение вектора в файл работает, а с загрузкой из файла беда

13.04.2016, 01:46. Показов 3515. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
сохранение в файл, работает успешно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
fstream fdat;
fdat.open("book.dat", ios::out | ios::trunc);
            if (!fdat) {
                MessageBox(hDlg, "Не могу открыть файл 'book.dat' для записи!",
                    "Ошибка", MB_OK);
                return FALSE;
            }
            nItems = SendMessage(hListBox, LB_GETCOUNT, 0, 0);                      
            for (i = 0; i < Mys.size(); ++i) {
                /*SendMessage(hListBox, LB_GETTEXT, i, (LPARAM)item.dat.line);*/
                fdat << Mys[i].getQuest() << " . " << Mys[i].getV_one() << " . " << Mys[i].getV_two() << " . " << Mys[i].getV_three() << " . " << Mys[i].getrueNumber() << " . " << endl;
            }
            fdat.close();

C++
1
vector<SubCls> Mys;
C++
1
2
3
4
5
6
7
class SubCls {
private:
    char question[N1];
    char v_one[N1];
    char v_two[N1];
    char v_three[N1];
    int trueNumber;}
как тут дальше не знаю....
C++
1
2
3
4
5
6
7
8
9
10
11
12
    fdat.open("book.dat", ios::in);
        if (!fdat) { fdat.clear();  return TRUE; }
        else while (1) {
            fdat.getline //????? как загрузить в вектор из файла в переменные класса ._.
 
            if (fdat.eof())  { fdat.clear(); break; }
            /*SendMessage(hListBox, LB_ADDSTRING, 0,
                (LPARAM)item.dat.line);*/       
        }
 
        fdat.close();
        return TRUE;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2016, 01:46
Ответы с готовыми решениями:

Сохранение вектора в файл
Помогите, пожалуйста!!!! не могу понят в чем ошибка, при записи в файл счетчика, сохранние происходит не правильно... в общем не хочет в...

Сохранение в файл вектора указателей
Здравствуйте. Помогите, пожалуйста, советами - как правильно сохранить на диск четыре вектора указателей на произвольные типы. Дело в...

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

7
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
13.04.2016, 05:36
Ну если не вникать что Вы сохраняете... то чтение примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
fayl.open("nomer_с_7.txt", std::ios_base::in);//открываем файл
    if ( fayl.is_open() )
    {
        while ( !fayl.eof() )
        {
            fayl >> str_vxod;
            baza_obhay.push_back(str_vxod);
            str_vxod.clear();
        }
        fayl.close();
    }
Это я читал файл в вектор
C++
1
std::vector <std::string> baza_obhay;
где
C++
1
std::string str_vxod;
Здесь идет чтение с файла построчно, и каждая строка добавляется в вектор. соответственно все контейнеры вектора вам надо записать в файл построчно...

Добавлено через 2 минуты
Сохранять в файл можно любые данные но главное выдержать формат записи чтения.... который делаете сами...
1
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92
13.04.2016, 08:30  [ТС]
Цитата Сообщение от eagl69 Посмотреть сообщение
выдержать формат записи чтения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fdat.open("book.dat", ios::in);
        if (!fdat) { fdat.clear();  return TRUE; }
        else while (1) {
            
 
 
            if (fdat.eof())  { fdat.clear(); break; }
            for (int i = 0; i < Mys.size(); i++){
                fdat >> A.setQuest(b) >> " . " >> A.setV_one(c) >> " . " >> A.setV_two(e) >> " . " >> A.setV_three(f) >>" . " >> A.setV_trueNumber(numb);
                Mys.push_back(A);
                
            }
        }
 
        fdat.close();
        return TRUE;
Так жалуется оператор >>


запись в файл имеет такой формат

C++
1
fdat << Mys[i].getQuest() << " . " << Mys[i].getV_one() << " . " << Mys[i].getV_two() << " . " << Mys[i].getV_three() << " . " << Mys[i].getrueNumber() << " . " << endl;
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
13.04.2016, 11:29
A. это что структура?
тогда вы записываете в файл не вектор с данными а вектор структур это совсем другая история....

Добавлено через 6 минут
Цитата Сообщение от Olya_z Посмотреть сообщение
vector<SubCls> Mys;
?Вектор чего?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
13.04.2016, 11:32
Считывать нужно в переменные подходящего типа, а затем уже set вызывать. Или перегрузи операцию >> для своего класса, пусть он сам себя считывает.
0
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92
13.04.2016, 12:18  [ТС]
Цитата Сообщение от eagl69 Посмотреть сообщение
?Вектор чего?
C++
1
2
3
4
5
6
7
8
9
vector<SubCls> Mys;
 
class SubCls {
private:
    char question[N1];
    char v_one[N1];
    char v_two[N1];
    char v_three[N1];
    int trueNumber;}


Цитата Сообщение от nmcf Посмотреть сообщение
Считывать нужно в переменные подходящего типа, а затем уже set вызывать. Или перегрузи операцию >> для своего класса, пусть он сам себя считывает.
да...так и есть, они объявлены выше, не могу оператор перегрузить..

Добавлено через 22 минуты
C++
1
fdat << Mys[i].getQuest() << " . " << Mys[i].getV_one() << " . " << Mys[i].getV_two() << " . " << Mys[i].getV_three() << " . " << Mys[i].getrueNumber() << " . " << endl;
в тексте данные вот таким образом сохраняются построчно, с разделителем в точку:
C++
1
Значение первого char . второго . третьего . четвертого . 0 .
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
13.04.2016, 12:31
Примерно так, если нет пробелов в данных:
C++
1
2
3
4
5
6
    friend istream & operator >> (istream &is, SubCls &v);
    {
        (is >> v.question).ignore(3);
        //...
        return is;
    }
0
11 / 15 / 8
Регистрация: 12.10.2011
Сообщений: 811
13.04.2016, 12:45
Запись/чтение структуры в файл
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2016, 12:45
Помогаю со студенческими работами здесь

Вывод файла, ввод в файл новых строк и сохранение этого в файл
у меня есть файл, с property и мне в него надо записать новые пары идентификатор = значение я наивно полагал что это будет работать, но...

Не работает сохранение в бинарный файл
помогите пожалуйста, вроде все работает кроме бинарного сохранения в файл TPop*data,*tmp; FILE*Txt; int fh=0; ...

Текстовый редактор: не работает сохранение файла
По заданию необходимо написать простой текстовый редактор (создание, открытие, сохранение отредактированного). Вопрос: почему не...

Чтение из файла и сохранение в файл
Здравствуйте. Работаю с текстовым файлом формата .txt. Считывается текст из файла, который затем встраивается в аудиофайл. Затем...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru