Pessoal estou com um problema que não consigo resolver e queria uma ajuda, esse código que criei armazena nome e telefone  em um arquivo, mais quando complilo e rodo o .exe ele apenas armazena o nome correto o numero de telefone não armazena corretamente:  #include <stdio.h>
    #include <stdlib.h>
    struct regis
    {
            char nome[20];
            int telefone;
    };
    
    int main(int argc, char *argv[])
    {
        struct regis reg;
      int sa=0,cond;
      FILE *registro;
      while(sa==0)
      {
       printf("digite 1 para cadastrar 2 para visualizar e 3 para sair:\n");
       scanf("%d",&cond);
       system("cls");
       switch(cond)
       {
          case 1:         
          registro=fopen("registro.txt","w+b");
          printf("entre com seu nome:\n");
          scanf("%s",& reg.nome);
          printf("entre com o numero de telefone: \n");
          scanf("%d", & reg.telefone);
          fseek(registro,1 * sizeof(reg.nome),SEEK_SET);
          fwrite(& reg.nome,sizeof(reg.nome),1,registro);
          fseek(registro,2,SEEK_CUR);
          fwrite(& reg.telefone,sizeof(reg.telefone),1,registro);
          fclose(registro);
          printf("digite 3 para sair ou 0 para voltar ao menu: \n");
          scanf("%d",&sa);
          system("cls");
          break;
          case 2:
          registro=fopen("registro.txt","rb");
          fseek(registro,1 * sizeof(reg.nome),SEEK_SET);
          fread(& reg.nome,sizeof(reg.nome),1,registro);
          printf("%s\n",& reg.nome);
          fseek(registro,1,SEEK_CUR);
          fread(®.telefone,sizeof(reg.telefone),1,registro);
          printf("%d\n",& reg.telefone);
          printf("digite 3 para sair ou 0 para voltar ao menu: \n");
          scanf("%d",&sa);
          system("cls");
          break; 
       }
     }
      return 0;
    } agradeço desde já a ajuda!