关天文件读写。
我想用二进制读取文件的“两个字节”,然后把它转换成int型。怎么实现?
用fread()怎么写,或用别的什么方法也行!

解决方案 »

  1.   

    WORD w;
    fread(&w,sizeof(w),1,fp);
      

  2.   

    随你用哪种方法读文件,
    只要读入内存,一切都好办,
    比如你有一个指针p,
    将二进制读到p所指的内存。
    接下来怎么做呢?
    第一步:须要一个int型变量i,
    第二步:i是四字节的,把i的最后两字节设为0:i = 0;
    第三步:把p的内容直接送入i的地址:memcpy((void *)&i, p, 2);以上方法并不对所有系统通用,
    因为有些系统的字节顺序与我们用的是相反的。
    既然文件内容是你知道的,i变量也是你自己控制的,
    以上方法直接使用便是。
      

  3.   

    windows中保存整型是高地址存高字节,低地址存低字节,unix中恰好相反。所以在windows系统中读整型就应该如下:
    int reasult;
    short w;
    fread(&w,sizeof(w),1,fp);
    用WORD类型会不能处理负数。
    然后
    reasult=w;
    即可。
    或者直接用整型来获取数据:
    int data=0;//必须要初始化为0;
    fread(&data,2,1,fp);