11.08.2013, 21:46. Просмотров 2030. Ответов 4
Нужно записать данные контейнера в файл:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #include<iostream>
#include<string>
#include<vector>
#include<fstream>
#include<iterator>
#include<algorithm>
using namespace std;
class Store
{
public:
ofstream & name;
Store(ofstream & h):name(h){};
void operator()(const string & );
};
void Store::operator () (const string & j)
{
int len=j.size();
name.write((char *)&len, sizeof(size_t));
name.write(j.data(), len);
}
void Show(string &);
int main()
{
vector<string> kom;
string temp;
while(getline(cin,temp) && temp[0]!='\0')
kom.push_back(temp);
ofstream ofs("1.txt");
for_each(kom.begin(),kom.end(),Store(ofs));
for_each(kom.begin(),kom.end(),Show);
ofs.close();
system("PAUSE");
return 0;
}
void Show(string & a)
{
cout<<a<<endl;
} |
|
В файле получаю большие пробелы между содержимым и какой-то невнятный символ после каждого элемента.
Отсюда вопрос
C++ |
1
2
| name.write((char *)&len, sizeof(size_t));
name.write(j.data(), len); |
|
Правильно ли это(брал из задания)?