Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <fstream>
- #include <iostream>
- std::vector<bool> Read();
- void Write(std::vector<bool>& map);
- int main()
- {
- std::vector<bool> map;
- map.resize(8);
- map[0] = 1;
- map[1] = 1;
- map[2] = 0;
- map[3] = 0;
- map[4] = 0;
- map[5] = 1;
- map[6] = 1;
- map[7] = 1;
- Write(map);
- std::cout << "Write data :" << std::endl;
- for (unsigned int i = 0; i < map.size(); i++)
- {
- std::cout << map[i] << " ";
- }
- map = Read();
- std::cout << "\n" << "Read Data :" << std::endl;
- for (unsigned int i = 0; i < map.size(); i++)
- {
- std::cout << map[i] << " ";
- }
- std::cout << "\n";
- std::cout << map.size() << std::endl;
- return 0;
- }
- std::vector<bool> Read()
- {
- std::vector<bool> map;
- std::ifstream fin("test.bin", std::ios::binary);
- int size = 8 / 8.0f;
- char * buffer = new char[size];
- fin.read(buffer, size);
- fin.close();
- for (int i = 0; i < size; i++)
- {
- for (int id = 0; id < 8; id++)
- {
- map.emplace_back(buffer[i] << id);
- }
- }
- delete[] buffer;
- return map;
- }
- void Write(std::vector<bool>& map)
- {
- std::ofstream fout("test.bin", std::ios::binary);
- char byte = 0;
- int byte_index = 0;
- for (size_t i = 0; i < map.size(); i++)
- {
- if (map[i])
- {
- byte |= (1 << byte_index);
- }
- byte_index++;
- if (byte_index > 7)
- {
- byte_index = 0;
- fout.write(&byte, sizeof(byte));
- }
- }
- fout.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement