Witam, tworzę funkcję, która ma za zadanie wczytać plik *.pgm do tablicy dwuwymiarowej z wypisaniem komentarzy zawartych w pliku
stworzyłem coś takiego:
#include <stdio.h>
#define DL_LINII 248
#define MAX 512
int main()
{
int i=0,j=0,koniec=0,wymx,wymy,szarosci;
char znak;
char linia[DL_LINII];
char komentarz[8][DL_LINII];
int obraz[MAX][MAX];
FILE *plik;
plik=fopen("feep.pgm","r");
/********************* uchwyt ****************************/
if (plik==NULL)
{
fprintf(stderr,"Blad: Nie podano uchwytu do pliku\n");
return(0);
}
/*********************** P2 *******************************/
if(fgets(linia,DL_LINII,plik)==NULL)
koniec=1; /*nie udalo sie pobrac linii*/
if (linia[0]!='P'||linia[1]!='2'||koniec)
{
fprintf(stderr,"Blad: To nie jest plik PGM\n");
return 0;
}
/*********************** komentarze **********************/
while (znak=fgetc(plik)=='#')
{
ungetc(znak,plik);
fgets(linia,DL_LINII,plik);
for(j=0;j<sizeof(linia);j++)
komentarz[i][j]=linia[j];
i++;
}
printf("%s",komentarz[0]);
printf("%s",komentarz[1]);
/************************ wymiaty i szarosci ****************/
if (fscanf(plik,"%d %d %d",wymx,wymy,szarosci)!=3)
{
fprintf(stderr,"Blad: Brak wymiarow obrazu lub liczby stopni szarosci\n");
printf("%d %d %d",wymx,wymy,szarosci);
return(0);
}
/********************** wczytanie tablicy *****************/
for (i=0;i<wymy;i++)
{
for (j=0;j<wymx;j++)
{
if (fscanf(plik,"%d",&(obraz[i][j]))!=1)
{
fprintf(stderr,"Blad: Niewlasciwe wymiary obrazu\n");
return(0);
}
}
}
/**************************************************************/
fclose(plik);
return 0;
}
Ale program zamiast zwrócić '#' zwraca mi inny znak <dlaczego?>
wysypuje się, kiedy chcę wczytać z pliku wymx,wymy,szarości <?>
Nie mogę sobie z tym poradzić.
Proszę o naprowadzenie mnie na rozwiązanie tego problemu.
plik feep.pgm
P2
# elo.xd
# feep.pgm
24 7
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Pozdrawiam, PkNagato