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か? そうでない場合は、その時点でプログラムがクラッシュしています。

また、ループ内にピクセルを読み取る print ステートメントがないforことも認識しているため、ピクセルが出力されない理由も考えられます。

編集: ああ、これはおそらくそれです:

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

あなたの比較は後方です。あなたがしたい:

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