一个简单的c语音问题。
代码如下:
#include<cstdio><br /><br />typedef unsigned char us_char;<br /><br />int main()<br />{<br /> //定义二维数组存放图片信息<br /> us_char img[256][256];<br /><br /> FILE *fp = fopen("31015_H1.raw", "wb");<br /> if (!fp)<br /> {<br /> printf("erro");<br /> return 1;<br /> }<br /><br /><br /> for (int i = 0; i<256; i++)<br /> for (int j = 0; j<256; j++)<br /> img[i][j] = (us_char)j;<br /><br /> fwrite(img, sizeof(img), 256, fp);//写入<br /><br /> fclose(fp);<br /><br /> return 0;<br />}<br />
输出的图像如下:
如果把 FILE *fp = fopen("31015_H1.raw", "wb");中 “wb”改为“b”
输出图像如下:
这个我百思不得其解啊,那位大虾可以帮我解释一下,谢谢!
------解决思路----------------------“wb”改为“b”就是少了写入。
估计31015_H1.raw就是图二的样子。
------解决思路----------------------FILE *fp = fopen("31015_H1.raw", "b");
这样不出错吗?
下图是这样的吧?
FILE *fp = fopen("31015_H1.raw", "w");
你的 j 循环从 0 到 255
当 j = 10 时,(us_char)j 就是换行符了,window 中文本写换行符时会自动添加一个回车符
于是整个就错位了
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn