#include #include #include #include "grid.h" void readGridFromFile(char* fname, Grid* g) { //g must be allocated before this call assert(g); FILE* f; f = fopen(fname, "r"); if (!f) { printf("cannot open file %s\n", fname); exit(1); } //f is now valid //read from the file char dummy[100]; //read ncols int ncols; fscanf(f, "%s", dummy); printf("read: %s\n", dummy); fscanf(f, "%d", &ncols); printf("read: %d\n", ncols); //read nrows int nrows; fscanf(f, "%s", dummy); printf("read: %s\n", dummy); fscanf(f, "%d", &nrows); printf("read: %d\n", nrows); //read to the end of the current line, and then next two lines and //discard them fgets(dummy, 100, f); fgets(dummy, 100, f); printf("read: %s\n", dummy); fgets(dummy, 100, f); printf("read: %s\n", dummy); //read cellsize int cellsize; fscanf(f, "%s", dummy); printf("read: %s\n", dummy); fscanf(f, "%d", &cellsize); printf("read: %d\n", cellsize); //read nodata int nodata; fscanf(f, "%s", dummy); printf("read: %s\n", dummy); fscanf(f, "%d", &nodata); printf("read: %d\n", nodata); //allocate the grid of nrows, ncols int** data; data = (int**) malloc(sizeof(int*) * nrows); assert(data); int i,j; for (i=0; inrows = nrows; g->ncols = ncols; g->nodata= nodata; g->data = data; } void printGrid(Grid g) { printf("nrows=%d, ncols=%d, nodata=%d\n", g.nrows, g.ncols, g.nodata); int i,j; for (i=0; i