0

我正在阅读一个 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);
               }
        }

是的,我已经确保我的结构是 int red/green/blue,并且我已经检查了打印出注释/maxcolor/以及其他所有工作的东西。

4

1 回答 1

0

您是否为您的图像分配了存储空间imgur->image?如果不是,那么您的程序此时正在崩溃。

此外,您确实意识到for循环中没有读取像素的打印语句,因此这也可能是它没有打印出像素的原因。

编辑: 啊哈,这很可能是:

       for(j=0; j > imgur->width; j++)

你的比较是落后的。你要:

       for(j=0; j < imgur->width; j++)
于 2013-12-11T04:46:17.790 回答