0

バイナリ (.bin) ファイルから 256 バイトのセットを読み取り、それをバッファーに格納したいと考えています。次に、これらの各バイトを char ベクトルのベクトルに移動したいと思います。また、ベクター内の char 値を読み取り、そのバイトのバイナリ値の対応する整数値を取得したいと思います。これは私がそれにアプローチした方法です:

typedef unsigned char BYTE;
vector< vector<BYTE> > pMem (256, vector<BYTE> (256, '0'));
ifstream binStream;
binStream.open("BACKING_STORE.bin", ios::binary | ios::in );
// allocate memory:
char * buffer = new char [256];

binStream.seekg(0, binStream.beg);
binStream.read(buffer, 256);

for( i = 0; i < 256; i++ )
    pMem[0][i] = buffer[i];

for( i = 0; i < 256; i++ )
{
    cout << "Physical memory char contents at 0[" << i << "]: " << pMem[0][i] << endl;
    int x = pMem[0][i];
    cout << "Physical memory integer contents at 0[" << i << "]: " << x << endl;
}

しかし、値を出力すると、次のような結果が得られます。

Physical memory char contents at 0[237]: 
Physical memory integer contents at 0[237]: 0
Physical memory char contents at 0[238]: 
Physical memory integer contents at 0[238]: 0
Physical memory char contents at 0[239]: ;
Physical memory integer contents at 0[239]: 59
Physical memory char contents at 0[240]: 
Physical memory integer contents at 0[240]: 0
Physical memory char contents at 0[241]: 
Physical memory integer contents at 0[241]: 0
Physical memory char contents at 0[242]: 
Physical memory integer contents at 0[242]: 0
Physical memory char contents at 0[243]: <
Physical memory integer contents at 0[243]: 60
Physical memory char contents at 0[244]: 
Physical memory integer contents at 0[244]: 0
Physical memory char contents at 0[245]: 
Physical memory integer contents at 0[245]: 0
Physical memory char contents at 0[246]: 
Physical memory integer contents at 0[246]: 0
Physical memory char contents at 0[247]: =
Physical memory integer contents at 0[247]: 61
Physical memory char contents at 0[248]: 
Physical memory integer contents at 0[248]: 0
Physical memory char contents at 0[249]: 
Physical memory integer contents at 0[249]: 0
Physical memory char contents at 0[250]: 
Physical memory integer contents at 0[250]: 0
Physical memory char contents at 0[251]: >
Physical memory integer contents at 0[251]: 62
Physical memory char contents at 0[252]: 
Physical memory integer contents at 0[252]: 0
Physical memory char contents at 0[253]: 
Physical memory integer contents at 0[253]: 0
Physical memory char contents at 0[254]: 
Physical memory integer contents at 0[254]: 0
Physical memory char contents at 0[255]: ?
Physical memory integer contents at 0[255]: 63

これは明らかに間違った出力です。誰かが私が間違っていたことと、これをどのように達成できるかを説明してもらえますか?

4

1 に答える 1