Проблема, кажется, не в записи файла, а скорее в чтении и отображении его, а именно здесь:
memblock = new char [size];
file.seekg (0, ios::beg);
file.read (memblock, size);
file.close();
cout<< memblock<<endl;
При отображении с cout ожидается, что строка будет нулевым завершением. Но вы только выделяете достаточно места для содержимого файла, а не терминатора. Добавление следующего должно заставить его работать:
memblock = new char [size+1]; // add one more byte for the terminator
file.seekg (0, ios::beg);
file.read (memblock, size);
file.close();
memblock[size] = 0; // assign the null terminator
cout<< memblock<<endl;