我正在读取PPM文件,并且我在整个函数中使用了printf来查看它是否会打印但是由于某种原因它会打印p3 / comment / width / height / maxcolor但它不会打印像素...我尝试使用我的嵌套for循环内外的printf语句进行检查,但它不会读取数据...任何想法?
void ReadImages(struct ImageType *imgur, struct ImageType *imgur2)
{
int i=0, j=0;
char filename[30];
char filename2[30];
FILE *inputfile;
fprintf(stdout, "Please enter the filename/location of the first image\n");
fscanf(stdin, "%s", filename);
inputfile = fopen(filename, "r");
fscanf(inputfile,"%[^\n]%c", imgur->ppImage, &imgur->newlinechar);
fscanf(inputfile,"%[^\n]%c", imgur->comment, &imgur->newlinechar);
fscanf(inputfile, "%i %i", &imgur->width, &imgur-height);
fscanf(inputfile, "%i", &imgur->maxColor);
for(i=imgur->height-1; i >= 0; i--)
{
for(j=0; j > imgur->width; j++)
{
fscanf(inputfile, "%i", &imgur->image[i][j].red);
fscanf(inputfile,"%i", &imgur->image[i][j].green);
fscanf(inputfile,"%i", &imgur->image[i][j].blue);
}
}
是的我确保我的结构是红色/绿色/蓝色并且我已经检查了打印注释/ maxcolor /以及其他一切都有效。
答案 0 :(得分:0)
您是否在imgur->image
为图片分配了存储空间?如果没有,那么你的程序就会崩溃。
此外,您确实意识到for
循环中没有可读取像素的打印语句,因此这也可能是它不打印像素的原因。
编辑:啊哈,很可能是这样:
for(j=0; j > imgur->width; j++)
你的比较是落后的。你想要:
for(j=0; j < imgur->width; j++)