Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 15.12.2016
- * Обработка динамического списка std::list
- * Запись и чтение его элементов в двоичный файл
- * Первая строка в файле указывает на количество записей
- */
- #include <iostream>
- #include <list>
- #include <fstream>
- using namespace std;
- int main()
- {
- fstream bin("bin.txt", ios_base::binary | ios_base::out | ios_base::in);
- //Инициализируем количество записей нулем
- // int z = 0;
- // bin.write((char*)&z, sizeof(int));
- int size, temp;
- list<int> l;
- cout << "Input numbers: ";
- while (cin >> temp)
- l.push_back(temp);
- bin.read((char*)&size, sizeof(int));
- size += l.size();
- bin.seekp(0, ios_base::beg);
- bin.write((char*)&size, sizeof(int));
- bin.seekp(0, ios_base::end);
- for (list<int>::iterator i = l.begin(); i != l.end(); i++)
- {
- temp = *i;
- bin.write((char*)&temp, sizeof(int));
- }
- bin.seekg(0, ios_base::beg);
- int rSize;
- list<int> rl;
- bin.read((char*)&rSize, sizeof(int));
- for (int i = 0; i < rSize; i++)
- {
- bin.read((char*)&temp, sizeof(int));
- rl.push_back(temp);
- }
- bin.close();
- cout << "Size: " << rSize << endl;
- cout << "List from binary file: ";
- for (list<int>::iterator i = rl.begin(); i != rl.end(); i++)
- cout << *i << ' ';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment