一个简单的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 中文本写换行符时会自动添加一个回车符
于是整个就错位了
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn