Untitled
/* Si consideri un file binario punti.bin che contiene le coordinate di una serie di lunghezza indefinita di punti rappresentati con il seguente tipo strutturato typedef struct { int x, y; } punto_t; Scrivere un programma che apre il file punti.bin e calcola e visualizza le coordinate del vertice in basso a sinistra e del vertice in alto a destra del rettangolo che racchiude tutti i punti salvati nel file. Gestire visualizzando un messaggio a video i casi di errore di apertura del file o di file vuoto. */ // fread e fwrite #include <stdio.h> typedef struct { int x, y; } punto_t; int main(int argc, char *argv[]) { FILE *fp = fopen("punti.bin", "rb"); if(fp != NULL) { punto_t punto; int min_x, min_y, max_x, max_y; if(fread(&punto, sizeof(punto_t), 1, fp) == 1){ min_x = max_x = punto.x; min_y = max_y = punto.y; while(fread(&punto, sizeof(punto_t), 1, fp) == 1){ if(punto.x < min_x){ min_x = punto.x; } if(punto.x > max_x){ max_x=punto.x; } if(punto.y < min_y){ min_y = punto.y; } if(punto.y > max_y){ max_y = punto.y; } } fclose(fp); printf("Vertice in basso a sinistra: (%d, %d)\n", min_x, min_y); printf("Vertice in alto a destra: (%d, %d)\n", max_x, max_y); }else{ printf("Il file e vuoto\n"); fclose(fp); } }else{ printf("Errore paertura file"); } return 0; }
Leave a Comment