char *buf=new char[1024];
FILE *pFile=fopen("1.mp3","rb");
缓冲区buf设为char跟设为short时,文件读到buf里的数据有什么区别吗?二进制文件就是0和1,但是读到char型的 buf跟读到short型的 buf,数据有什么不同吗?是不是就是把0或1读入buf里,又或是按char型一次读8个bit,再组成char字符,放入buf里?

解决方案 »

  1.   

    缓冲区buf设为char跟设为short时?
    缓冲区buf有设为short的么? 反正我没用过。不过文件读到buf里的数据应该没有区别。
    它是至少是一个char一个char读入的。 不会按位读。
      

  2.   

    即使你设为short型指针,文件读写时也会转化为char*
      

  3.   

    我的理解:
    char 的长度是一个字节,short int 的长度也是一个字节,但是有正负之分。
    c支持类型的强制转换,所以问题应该不大,你可以试一下负数是否可以正确
    转换为char 就可以了。或者你也可以用 unsinged short int, 这个应该没有问题