fwrite(fat,sizeof(fat),1,fp);函数是用的这个
因为FAT是int型的,所以写的时候直接写了4字节
而我要放的东西只有两字节
所以后面都多放了2字节的0
就是原来放FF7F 现在放成了FF 7F 00 00 
怎么解决呢?改成
short t=(short) fat;
fwrite(&t,sizeof(t),1,fp);
这样的话,什么都没写进去,为什么?

解决方案 »

  1.   

    short t=(short) fat;
    fwrite(&t,1,sizeof(t),fp);
      

  2.   

    事实是写不进去的
    我查过2进制内容了
    我重复写很多个原本应该是一个接一个的FFF7FFF7
    现在编程了FFF70000FFF70000
    所以是出错了
      

  3.   

    我试过了, 一下代码没有问题#include <stdio.h>
    main()
    {
      int fat=0x0000F7FF;
      short a=(short)fat;
      FILE *fp;
      int i=0;
      fp =  fopen("ko.dat", "wb+");
      for(i=0; i<5; i++)
      fwrite(&a, sizeof(a), 1, fp);
      fclose(fp);
      return 0;
    }