2016-12-18 2 views
0

У меня есть текстовый файл, который выглядит следующим образом:Как читать из файла на карту

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

Не содержит ошибок при сортировке.

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'); 
} 
Смежные вопросы