Форум программистов, компьютерный форум CyberForum.ru

Вектор в файл и из файла - C++

Восстановить пароль Регистрация
 
 
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 19:43     Вектор в файл и из файла #1
Доброго времени суток !

Есть вектор наполненный каким-то количеством указателей. Также есть класс ContainerWork, который производит с этим вектором какие-то действия. Два метода из них должны записывать в файл этот вектор и читать его из файла.

Пытался таким образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void ContainerWork::save_info()
{
FILE *f;
if ((f = fopen("file.bin", "wb")) == NULL)
{printf("Error while opening/writing file.\n");
exit(1);}
 
ofstream fout("file.bin");
for (int i = 0; i < vemp.size(); i++)
{fout << vemp[i] << " ";}
fout.close();
}
Создается файл с подобным содержимым:
004A9888 004A9A78 004A99A0 004A97B0 004A9728

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

Помогите с этими двумя методами, плз.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2013, 19:43     Вектор в файл и из файла
Посмотрите здесь:

Вектор из файла! C++
Забекапить и восстановить вектор из файла C++
Вектор, вывод файл C++
C++ Файл в вектор
Ввод из файла в вектор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 20:16     Вектор в файл и из файла #2
oodessit , объясните смысл вот этого:
C++
1
2
3
4
FILE *f;
if ((f = fopen("file.bin", "wb")) == NULL)
{printf("Error while opening/writing file.\n");
exit(1);}
Nikitko_Cent
128 / 98 / 8
Регистрация: 27.10.2011
Сообщений: 627
Завершенные тесты: 2
07.09.2013, 20:18     Вектор в файл и из файла #3
Цитата Сообщение от oodessit Посмотреть сообщение
Доброго времени суток !

Есть вектор наполненный каким-то количеством указателей. Также есть класс ContainerWork, который производит с этим вектором какие-то действия. Два метода из них должны записывать в файл этот вектор и читать его из файла.

Пытался таким образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
void ContainerWork::save_info()
{
FILE *f;
if ((f = fopen("file.bin", "wb")) == NULL)
{printf("Error while opening/writing file.\n");
exit(1);}
 
ofstream fout("file.bin");
for (int i = 0; i < vemp.size(); i++)
{fout << vemp[i] << " ";}
fout.close();
}
Создается файл с подобным содержимым:
004A9888 004A9A78 004A99A0 004A97B0 004A9728

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

Помогите с этими двумя методами, плз.
А что ты ожидал увидеть в выходном файле? Программа отработала нормально - в файл вывелось содержимое указателей, т.е. адреса некоторых объектов

И таки да, вот это:
Цитата Сообщение от oodessit Посмотреть сообщение
C++
1
2
3
4
FILE *f;
if ((f = fopen("file.bin", "wb")) == NULL)
{printf("Error while opening/writing file.\n");
exit(1);}
Это
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 20:20  [ТС]     Вектор в файл и из файла #4
проверка на успешное открытие файла
fopen возвращает нуль, если произошла ошибка во время работы функции

http://www.cplusplus.com/reference/c...open/?kw=fopen

Добавлено через 1 минуту
Nikitko_Cent, окей, не спорю.

Я лишь попросил форумчан помочь написать метод, который бы вытаскивал данные из файла и выводил их на экран
Nikitko_Cent
128 / 98 / 8
Регистрация: 27.10.2011
Сообщений: 627
Завершенные тесты: 2
07.09.2013, 20:30     Вектор в файл и из файла #5
Цитата Сообщение от oodessit Посмотреть сообщение
проверка на успешное открытие файла
fopen возвращает нуль, если произошла ошибка во время работы функции

http://www.cplusplus.com/reference/c...open/?kw=fopen

Добавлено через 1 минуту
Nikitko_Cent, окей, не спорю.

Я лишь попросил форумчан помочь написать метод, который бы вытаскивал данные из файла и выводил их на экран
По поводу открытия файла, делай тогда уже так:

C++
1
2
3
4
ofstream fout("dfjgbdf.txt");
if (fout.is_open())
{
};
Записывай данные лучше уже тогда построчно, а не в одну строку все адреса

А по сабжу - куда считывать файл, в тот же вектор?
dmitry94
517 / 187 / 34
Регистрация: 25.05.2012
Сообщений: 780
07.09.2013, 20:33     Вектор в файл и из файла #6
Цитата Сообщение от fit Посмотреть сообщение
oodessit , объясните смысл вот этого:
C++
1
2
3
4
FILE *f;
if ((f = fopen("file.bin", "wb")) == NULL)
{printf("Error while opening/writing file.\n");
exit(1);}
А что не так-то здесь?
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 20:35     Вектор в файл и из файла #7
Цитата Сообщение от dmitry94 Посмотреть сообщение
А что не так-то здесь?
fopen не нужен, если юзаешь потоки istream. то что показали выше достаточно для записи в файл
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 20:36  [ТС]     Вектор в файл и из файла #8
Цитата Сообщение от dmitry94 Посмотреть сообщение
Цитата Сообщение от fit Посмотреть сообщение
oodessit , объясните смысл вот этого:
Код C++
1
2
3
4
FILE *f;
if ((f = fopen("file.bin", "wb")) == NULL)
{printf("Error while opening/writing file.\n");
exit(1);}
А что не так-то здесь?

вот я о том же )

Цитата Сообщение от Nikitko_Cent Посмотреть сообщение
А по сабжу - куда считывать файл, в тот же вектор?
нет. Все равно. Лишь бы выводилось на экран из файла
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 20:40     Вектор в файл и из файла #9
oodessit , vemp как как определяется?
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 20:41  [ТС]     Вектор в файл и из файла #10
fit, в main вот так :

vector<Employee*> vemp;
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 20:43     Вектор в файл и из файла #11
oodessit, ну правильно, как ты объект-то пытался на экран вывести?)) теперь покажи что такое класс Employee
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 20:45  [ТС]     Вектор в файл и из файла #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Employee
{
public:
    Employee ();
    Employee (const string name_, int id_);
    virtual void wage_count () = 0;
    static int Comp (Employee *one, Employee *two);
    virtual ~Employee (){};
 
public:
    const string name;
    double wage;
    int id;
    #pragma once;
};
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 20:46     Вектор в файл и из файла #13
Цитата Сообщение от oodessit
вот я о том же )
вот эта строчка
C++
1
ofstream fout("file.bin");
открывает файл для записи. для проверки открылся файл или нет надо запихать ее в условие как показал Nikitko_Cent . таким образом применение fopen бессмысленно. к тому же, ты файл открыл как бинарник (модификатор wb)
Nikitko_Cent
128 / 98 / 8
Регистрация: 27.10.2011
Сообщений: 627
Завершенные тесты: 2
07.09.2013, 20:46     Вектор в файл и из файла #14
Чтоб не мучиться с выводом в цикле, перегрузи для класса оператор <<

P.S. выпиливаюсь с темы, пойду спать
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 20:48     Вектор в файл и из файла #15
oodessit, какие поля надо вывести в файл? name, age, id или все сразу?
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 20:50  [ТС]     Вектор в файл и из файла #16
fit, name, wage, id
dmitry94
517 / 187 / 34
Регистрация: 25.05.2012
Сообщений: 780
07.09.2013, 20:58     Вектор в файл и из файла #17
Цитата Сообщение от fit Посмотреть сообщение
fopen не нужен, если юзаешь потоки istream. то что показали выше достаточно для записи в файл
Понял, не внимательно посмотрел первый пост
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 21:00     Вектор в файл и из файла #18
ну так и надо выводить поля:
C++
1
2
for (int i = 0; i < vemp.size(); i++)
{fout << vemp[i].name << " "<< vemp[i].wage << " " << vemp[i].id <<endl;}
не уверен в синтаксисе, попробуй
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 21:33  [ТС]     Вектор в файл и из файла #19
в файл записывает теперь отлично. Только модификатор еще надо было сменить на w+

вопрос остался в том, как это все считывать теперь и выводить на экран
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2013, 21:49     Вектор в файл и из файла
Еще ссылки по теме:

Считать вектор из файла, записать вектор в файл C++
C++ Нужно реализовать класс "вектор" с конструкторами, которые позволяют создать нулевой вектор и вектор с произвольным кол-во элементов.
Сделать либо так, чтобы в файл записывались рандомные матрица и вектор, либо из файла считывать C++

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

Или воспользуйтесь поиском по форуму:
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 21:49     Вектор в файл и из файла #20
покажи содержимое файла
Yandex
Объявления
07.09.2013, 21:49     Вектор в файл и из файла
Ответ Создать тему
Опции темы

Текущее время: 16:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru