我有一个看起来像这样的文本文件:
a
00000000
00011100
00010000
00010000
00000100
00000000
11110000
00000000
z
00000000
00011100
00000000
01100000
01000100
00000000
00000000
00110000
t
001....
and so on...
我希望在std::map <char,std::bitset<8>[8]> table;
的地图中阅读此文件
我知道如何从文件中读取文件,但是从文件中读取到这个地图真的很麻烦。
我试图在std::vector<char>
中读取该文件,并从该副本一次将文字一个文件读取到一个字符,并将这些位写入std::bitset<8> a[8];
,但将其插入到地图中不起作用。是否有选项可以读取文件并将其直接插入地图中?
答案 0 :(得分:0)
不包含任何错误。
std::istream& str = std::cin;
std::map<char, std::array<std::bitset<8>, 8>> map;
std::string ch;
while (std::getline(str, ch))
{
std::array<std::bitset<8>, 8> bitset;
for (std::size_t i = 0; i < 8; ++i)
{
std::string line;
str >> line;
bitset[i] = std::bitset<8>(line);
}
map[ch[0]] = std::move(bitset);
str.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}