2013-12-11 5 views
0

PPM 파일을 읽었으며 printf를 사용하여 인쇄 할 수 있는지 알아 보았습니다. 그러나 어떤 이유로 p3/comment/width/height/maxcolor를 인쇄하지만 실 거예요 픽셀을 인쇄 ... 내 중첩 된 루프에 대한 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 있는지 확인 만든 빨강/녹색/파란색과 내가 모든 작품을 다른 코멘트/maxcolor /과 모든 것을 인쇄에 대한 확인했다.

+0

'for (j = 0; j> imgur-> width; j ++)'- 그 조건이 잘못되었습니다. 'j'는 결코 이미지 폭보다 클 수 없습니다. –

+0

@EdS. 그리고 그것은 ..... 나는 그것을 잡았어야했다. 나는 그것이 for 루프 일 줄 알았지 만 나는 정확한 반대를했을 때 나는 너비가 1보다 작은 것으로 생각했다. 고마워. 고마워. –

답변

0

imgur->image에 이미지 저장소를 할당 했습니까? 그렇지 않으면 프로그램이 그 시점에서 충돌합니다.

또한 픽셀을 인쇄하는 루프에 for 루프에 인쇄 문이 없으므로 픽셀을 인쇄하지 않을 수 있습니다.

편집 : 아하,이는 것 같다 :

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

귀하의 비교가 이전 버전입니다. 원하는 :

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

필자는 그것을 제거했다. 나중에 함수가 출력된다.이 함수는 두 파일을 읽은 다음 함수 중 하나를 뒤집은 다음 함수를 혼합하여 최종 함수를 출력한다. 나는 출력을 주석 처리하고 printfs를 사용하여 픽셀에 대한 데이터가 손실 된 곳을 확인했습니다. 나는 그 안에 printf를 가지고 있었지만 이상한 이유로 인쇄하지 못했습니다. –

+0

또한 두 개의 구조체, 하나는 픽셀 이미지 [450] [450]가 할당 된 저장소입니다. –

+0

@ user3078582 : 'j' 루프에서 루프 상태에 관한 편집을 참조하십시오. –