How to read in binary data and discard in unsigned char (C ++)

I have a raw image file that is stored in binary data (without encoding). I want to read in a file and pass unsigned char values. But I'm not sure how to start doing this. Each file contains 640x480 bytes. Each pixel is 8 bits.

I used the C ++ man page here: http://www.cplusplus.com/doc/tutorial/files/ , however when I look at the data it seems to show the same binary / human readable characters. Can someone please advise? Here is my code:

    #include <iostream>
    #include <fstream>
    using namespace std;

ifstream::pos_type size;
char * memblock;

int main () {
  ifstream file ("imageData.raw", ios::in|ios::binary|ios::ate);
  if (file.is_open())
  {
    size = file.tellg();
    memblock = new char [size];
    file.seekg (0, ios::beg);
    file.read (memblock, size);

    cout << "the complete file content is in memory";

    for (int l=0; l<size; l++){
    cout << " memblock[] is = " << (unsigned char)memblock[l] << " index was l = " << l << endl;
    }

    file.close();


    delete[] memblock;
  }
  else cout << "Unable to open file";
  return 0;
}

Here is an example of capturing output:

 memblock[] is = โ–€ index was l = 2937
 memblock[] is = E index was l = 2938
 memblock[] is = ฯ„ index was l = 2939
 memblock[] is = C index was l = 2940
 memblock[] is = โ”˜ index was l = 2941
 memblock[] is = B index was l = 2942
 memblock[] is = โ•ฌ index was l = 2943
 memblock[] is = D index was l = 2944
 memblock[] is = โ”ผ index was l = 2945
 memblock[] is = C index was l = 2946
 memblock[] is = โ• index was l = 2947
 memblock[] is = B index was l = 2948
 memblock[] is = โ”ค index was l = 2949
 memblock[] is = B index was l = 2950
 memblock[] is = ยฟ index was l = 2951
 memblock[] is = > index was l = 2952
 memblock[] is = รญ index was l = 2953
 memblock[] is = ; index was l = 2954
 memblock[] is = ยฃ index was l = 2955
 memblock[] is = 6 index was l = 2956
 memblock[] is = รก index was l = 2957
 memblock[] is = 4 index was l = 2958
 memblock[] is = ร‘ index was l = 2959
 memblock[] is = 7 index was l = 2960
 memblock[] is = โ•ก index was l = 2961
+5
source share
1 answer
unsigned char* memblock; // change declaration of memblock

...

memblock = new unsigned char[size]; // change to unsigned char
file.seekg (0, ios::beg);
file.read ((char*)memblock, size); // cast to a char* to give to file.read

, int.

(int) memblock[l]
+8

All Articles