请教在用fwrite的时候为什么每一个字符后面都接了一个空格

请问在用fwrite的时候为什么每一个字符后面都接了一个空格?
#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    file();
}

Widget::~Widget()
{
    
}

int readfile(FILE *fp,char *buff,int len,int n)
{
    if((fp=fopen("E:\\image.003","rb"))==NULL)
       {
         printf("Cannot read file\n");
       }
        else
        {
             fseek(fp,n*BUF_SIZE,SEEK_SET);
           len =  fread(buff,1,1024*1024,fp);
        }
    return len;
}

int writefile(FILE *fp1,char *ab,char*buff,int len,int m)
{

        if((fp1=fopen(ab,"a+"))==NULL)
        {
            printf("Cannot write file\n");
        }
        else
        {
            fwrite(buff,1,len,fp1);
        }

    fclose(fp1);
}

int name(int m,char *ab)
{
    char *ac="E:\\vm\\";
    char *b="name.";
    int n=m;
    sprintf(ab,"%s%s%03d",ac,b,n);
    qDebug()<<ab;
}

int Widget::file()
{
    int num = 1;
    int n = 1;
    int m = 0;
    char ab[1024];
    //char buff[1024*1024];

    char *buff;
    buff=(char*)malloc(BUF_SIZE*10);
    int size = BUF_SIZE*10;
    qDebug()<<"len";
    FILE *fp;
    FILE *fp1;
    int len = 0;

    if((fp=fopen("E:\\image.003","rb"))==NULL)
       {
         printf("Cannot read file\n");
       }
  //  while (1)
   //  while (feof(fp) == 0)
   // {
   //     while (n <= 10)
  //    {
           fseek(fp,m*size,SEEK_SET);
           len =  fread(buff,1,size,fp);
           qDebug()<<buff;

           // 512 * 512 = 56k
           if (feof(fp) != 0)
           {