title: How to read in binary data and cast to unsigned char (C++)
body: <p>I have a raw image file that is saved in binary data (no encoding). I want to read in the file and cast the values to an unsigned char. But I'm not sure how to begin going about doing this. Each file contains 640x480 bytes. Each pixel is 8bits.</p>
  
  <p>I've used the C++ help page here: <a href="http://www.cplusplus.com/doc/tutorial/files/">http://www.cplusplus.com/doc/tutorial/files/</a>, however when I am couting the data, it seems to be showing the same binary/non-human readable characters. Can someone please advise? Here is my code so far:</p>
  
  <pre><code>    #include &lt;iostream&gt;
      #include &lt;fstream&gt;
      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 &lt;&lt; "the complete file content is in memory";
  
      for (int l=0; l&lt;size; l++){
      cout &lt;&lt; " memblock[] is = " &lt;&lt; (unsigned char)memblock[l] &lt;&lt; " index was l = " &lt;&lt; l &lt;&lt; endl;
      }
  
      file.close();
  
  
      delete[] memblock;
    }
    else cout &lt;&lt; "Unable to open file";
    return 0;
  }
  </code></pre>
  
  <p>Here is a sample capture of the output:</p>
  
  <pre><code> 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 = &gt; 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
  </code></pre>