У меня есть двоичный файл со следующими данными,
10110100
11111001
01110001
, и я использовал этот код для его чтения,
#include<bits/stdc++.h>
using namespace std;
int main()
{
string in;
cin>>in;
ifstream input(in.c_str(),ios::in | ios::binary);
if(!input.is_open())
{
cout<<"oops!!"<<endl;
return 0;
}
cout<<"OK!!"<<endl;
char a;
while(input.get(a))
{
string s="";
int b=a,c=0;
while(b!=0)
{
c++;
s+=(b%2?'1':'0');
b/=2;
}
s+=string(8-c,'0');
for(int i=s.length()-1;i>=0;i--)
cout<<s[i];
cout<<endl;
}
cout<<endl<<"DONE!!"<<endl;
}
, который в основном читает символ, 1 байт, из файл с использованием функции get()
и выводит его в виде двоичного представления. Я также попробовал read()
, но это не сработало. Если это помогает, я получаю следующий вывод:
01001100
00000111
01110001
Других данных в файле нет, я проверил с помощью бинарного редактора. Какая у меня проблема?