我正在读取一个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 /以及其他一切都有效 .
1 回答
您是否在
imgur->image
为图像分配了存储空间?如果没有,那么你的程序就崩溃了 .此外,您确实意识到
for
循环中没有读取像素的打印语句,因此这也可能是它不打印像素的原因 .Edit: 啊哈,这可能是这样的:
你的比较是落后的 . 你要: