1
以下のC++プログラムでバイナリデータを読み込もうとしています。しかし、値を表示することはできません。 The dataは8bit unsigned charとして保存されます。それを解決する方法を教えてください。C++でバイナリデータを読み取る
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc,char *argv[])
{
if(argc!=2)
{
cout << "argument error" << endl;
return 1;
}
ifstream file (argv[1], ios::in|ios::binary);
//ifstream fin(outfile, ios::in | ios::binary);
if (!file)
{
cout << "Can not open file";
return 1;
}
unsigned char d;
while(!file.eof())
{
file.read((char *) &d, sizeof(unsigned char));
cout << d << endl;
}
file.close();
return 0;
}
あなたが言ったように、値は固定プログラムによって0と1を示すことができます。私は0と255を8ビットで表示したいと思います。私にそれをする方法を教えてください。 – LenItsuki
@LenItsuki何を意味するのかよくわかりません...入力ファイル内の各* byte *は1つだけ '1'または '0'であることを意味しますか?入力ファイルの部分的な16進ダンプを含めるように質問を編集できますか(いいえ、リンク先のような未知のファイルをダウンロードして開くことはありません)。 –
私はファイルに含まれている値を誤っています。 0と1はOKです!ご指摘ありがとうございます。 – LenItsuki