我读取BMP图像的一条直线数据(RGB值)时,用DEBUG无误,但写入文本时只有部分数据(这部分数据是正确的)?
我是用fwrite写入文件,fwrite(rgb,sizeof(char),strlen(rgb),hfile);
rgb为一个数组,用循环写入,rgb不主动改动。用数组指针也是一样的效果,而且如果用prgb++则写入的文件数字看不出规律,并且文件很大。
不知是什么原因?

解决方案 »

  1.   

    strlen是对字符串用的,对其他指针类型不要用。
      

  2.   

    指针指错了?我通常用mfc处理。可能比c的要方便一些吧。
      

  3.   

    fwrite(rgb,sizeof(char),strlen(rgb),hfile);写二进制数据到文本用strlen是错误的,需要得到实际的rgb数据长度。可以根据位图的色深和图片宽度来计算扫描行的字节数,然后再乘以高度就可以得到实际RGB象素所占的长度。
    要写数据,先得了解位图中象素存储的的结构,有的放矢