如何从文件读取到地图

时间:2016-12-18 11:24:27

标签: c++11

我有一个看起来像这样的文本文件:

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];,但将其插入到地图中不起作用。是否有选项可以读取文件并将其直接插入地图中?

1 个答案:

答案 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');
}