Я пытаюсь прочитать текстовый файл, заполненный отдельными шестнадцатеричные значения, отформатированные как это:Чтение отдельные шестнадцатеричные значения построчно в C++
0c 10 00 04 20 00 09 1a 00 20
То, что я хотел бы, чтобы прочитать их, преобразовать в двоичную, затем сохраните в векторе. Я хотел бы мое заявление печати на выход, как это:
00001100
00010000
00000000
00000100
00100000
00000000
00001001
00011010
00000000
00100000
Я думал, что правильно читаю мой файл, но я могу только показаться, чтобы получить первое шестнадцатеричное значение из каждой строки. Например: я могу читать только 0c до получения следующей строки и так далее. Если кто-то может сказать мне, что я делаю неправильно, это было бы здорово. Вот мой код:
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <bitset>
using namespace std;
vector<bitset<8> > memory(65536);
int main() {
string hex_line;
int i = 0;
ifstream mem_read;
//Read text file
mem_read.open("Examplefile.txt");
if(mem_read.is_open()){
//read then convert to binary
while(getline(mem_read, hex_line)){
unsigned hex_to_bin;
stringstream stream_in;
cout << hex_line << '\n';
stream_in<< hex << hex_line;
stream_in >> hex_to_bin;
memory[i] = hex_to_bin;
i++;
}
}else{
cout << "File Read Error";
}
//print binaries
for(int j = 0; j < i; j++){
cout << memory[j] << '\n';
}
mem_read.close();
return 0;
}
Он работал. Спасибо. – David
@dave: Я добавил переписку с вашей программой с аналогичной функциональностью. –
спасибо. это даже лучше. – David