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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
#1

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

07.09.2013, 19:43. Просмотров 878. Ответов 23
Метки нет (Все метки)

Доброго времени суток !

Есть вектор наполненный каким-то количеством указателей. Также есть класс 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++
Подскажите плз как быстро и эффективно загрузить файл размером 30-50мб в вектор, делаю через ifstream, работает очень медленно: ...

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов - C++
Привет! Задача следующая. Нужно реализовать класс &quot;вектор&quot; с конструкторами, которые позволяют создать нулевой вектор и вектор с...

Вектор из файла! - C++
необходимо чтобы программа считывала вектор из файла,а потом сотртировала его на наличие положительных элементов.Заранее спасибо!

Вектор, вывод файл - C++
Есть вектор содержаший более 10000 элементов типа string надо это вывести в файл Как будет быстрее(логичнее,удобней,..): Создать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 20:50  [ТС] #16
fit, name, wage, id
dmitry94
560 / 190 / 35
Регистрация: 25.05.2012
Сообщений: 796
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+

вопрос остался в том, как это все считывать теперь и выводить на экран
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 21:49 #20
покажи содержимое файла
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 21:51  [ТС] #21
я немного доработал. Вот так выглядит в формате .txt:

Name: Ahmed
Wage: 998.4
ID: 2

Name: Sonya
Wage: 850
ID: 4

Name: Sveta
Wage: 850
ID: 5

Name: Alisa
Wage: 832
ID: 3

Name: Vasya
Wage: 832
ID: 1
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 22:16 #22
сложная структура. ну примерно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ifstream finput("file.bin", ios::in);
string name;
string wage;
string id;
char ch;
for (int i = 0; i < vemp.size(); i++)
{
finput>>name;
finpur>>wage;
finput>>id;
finput>>ch;
/* тут нужно удалить из name, wage и id лишние символы. */
/* перевести wage и id в int и double соответственно  */
vemp[i].name=name;
/*и тд*/
}
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36
07.09.2013, 22:42  [ТС] #23
нашел решение намного проще:

C++
1
2
3
ifstream file("file.txt"); 
    cout<<file.rdbuf();
    cout<<endl;
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
07.09.2013, 23:10 #24
ну если только на экран вывести, то да
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2013, 23:10
Привет! Вот еще темы с ответами:

Ввод из файла в вектор - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;ostream&gt; #include &lt;vector&gt; const int size=7; using...

Чтение из файла в вектор - C++
Доброго времени суток! Подскажите, пожалуйста, пишу как казалось довольно простую программу, требуется из файла матрицу считать и потом с...

Как записать вектор в файл? - C++
Как записать вектора в файл? Вектор содержит тип long long. Записать в одну строчку в виде одного большого числа. ofstream out(imy3);...

Запись и Чтение из файла Вектор - C++
Не могу никак разобраться как записывать в файл вектор. Раньше записывал дин. массивы, структуры. а с векторами беда. Вот тут придумал...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.09.2013, 23:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru