PDA

Visualizza la versione completa : [C] non stampa la matrice


ftarsia
14-01-2008, 22:42
Salve,
il seguente codice viene correttamente compilato (Ho un vecchio Borland 5.0), ma quando
lancio l'eseguibile non viene creato il file matrice.pbm.
Come SO ho Vista.

/*
Definisce il tipo immagine come una matrice.
*/
#include<stdlib.h>
#include<stdio.h>
/* definizione del tipo */
struct ImmagineBW {
int larghezza;
int altezza;
int mat[400][400];
};
/*
crea un file a partire da una matrice
*/
void CreaFileImmagine(char *nomefile, struct ImmagineBW img) {
FILE *fd;
int x, y;
/* apre il file */
fd=fopen(nomefile, "w");
if( fd==NULL ) {
perror("Errore in apertura del file");
exit(1);
}
/* stampa la matrice */
fprintf(fd, "P1\n");
fprintf(fd, "%d %d\n", img.larghezza, img.altezza);
for(y=img.altezza-1; y>=0; y--)
for(x=0; x<=img.larghezza-1; x++)
if( img.mat[x][y] )
fprintf(fd, "1\n");
else
fprintf(fd, "0\n");
/* chiude il file */
fclose(fd);
}
/*
main
*/
int main() {
struct ImmagineBW q;
int x, y;
/* inizializza la matrice */
q.larghezza=200;
q.altezza=100;
for(x=0; x<=q.larghezza-1; x++)
for(y=0; y<=q.altezza-1; y++)
q.mat[x][y]=0;
/* disegna il rettangolo nella matrice */
for(x=10; x<=40; x++)
for(y=10; y<=20; y++)
q.mat[x][y]=1;
/* scrive l’immagine su file */
CreaFileImmagine("matrice.pbm", q);
return 0;
}

:dhò:

Loading