[C++] zapisywanie pliku exe do zmiennej char w pliku

Chciałem zapisać zawartość pliku exe do pliku .cpp w zmiennej char lecz mam z tym problemy, zapisują się tylko 3 pierwsze znaki

char lok[150]="char exe[]=";

                     int ile; 

                     int mak =0;


       while(1)

       { 

                       Sleep(10);

                       strcat(lok,"\t\"");                     

                       for (ile=1;ile<101;ile++)

                      {                                        


                       strncat(lok, (char*)&tb[mak], 1); // tb -> zawartość wczytanego pliku exe do zmiennej                 


                       cout<<" "<

                       mak++;


                       if (strlen(tb)<=mak) break;

                       }


                       strcat(lok,"\"\r\n");

                       fstream plik_zapis;

                       plik_zapis.open( "exe.cpp",ios::out|ios::app|ios::binary);

                       plik_zapis.write(lok,strlen(lok));//476140

                       memset(lok,0, sizeof(lok));

                       plik_zapis.close();

                       if (strlen(tb)<=mak) break;       

        }                   

                      delete[] tb;                            

                   }

Description_1, Wystarczy poczytać pytanie.

#include 

#include 

#include 

using namespace std;


int main()

  {

   ifstream rfs("Test080.exe",ios::binary);

   ofstream wfs("exe.cpp");

   wfs<<"char exe[]\n =\n \"";

   unsigned char ch;

   for(unsigned i=0;rfs>>ch;++i)

     {

      if((i)&&(!(i&15))) wfs<<"\"\n \"";

      wfs<<"\\x"<
     }

   wfs<<"\"\n ;";

   wfs.close();

   rfs.close();

   return 0;

  }

Nie działa jak powinno jak zapisuje to traci po drodze spacje ???