int read_pgm (char fname[], int M[][MAX], int *m, int *n, int *maxval)
{
FILE *arq;
char key[128];
int aux, i, j;
printf("Digite o nome do arquivo de entrada: ");
scanf("%s", fname);
arq=fopen(fname, "r");
if (arq==NULL){
printf("Erro na abertura de arquivo %s\n", *fname);
return 1;
}
aux=fscanf(arq, "%s", key);
if (aux!=1) {
printf("Erro na leitura do arquivo %s\n", *fname);
fclose(arq);
return 1;
}
if (strcmp(key, "P2") != 0){
printf("Formato desconhecido\n");
fclose(arq);
return 1;
}
printf("\n\nLendo dimensões\n\n");
aux=fscanf(arq, "%d %d %d ", &m, &n, &maxval);
if (aux != 3) {
printf("Formato incorreto\n");
fclose(arq);
return 1;
}
printf("\n\nDimensões lidas. m=%d n=%d maxval=%d\n\nLendo Matriz\n\n", m, n, maxval);
for(i=0; i<*m; i++){
for (j=0; j<*n; j++){
fscanf (arq, "%d ", &M[i][j]);
printf ("%d ", M[i][j]);
}
printf ("\n");
}
printf("\n\nMatriz lida.\n\n");
fclose (arq);
return 0;
}
a funçao é lida apenas ate "Lendo Matriz" e da uma mensagem de erro p/ enviar relatotia p/ microfoft!!