$ pico bin.cpp #include #include #include #include #include #include void main(int argc, char * argv[]) { if (sizeof(short int)!=2) { fprintf(stderr, "short ints are not 16 bits on your computer\n"); exit(1); } if (argc!=2) { fprintf(stderr, "give me a file name\n"); exit(1); } ifstream fin(argv[1]); if (fin.fail()) { fprintf(stderr, "can't read \"%s\"\n", argv[1]); exit(1); } string temp1, temp2; int rows, cols; fin >> temp1 >> rows >> temp2 >> cols; if (temp1!="rows" || temp2!="columns") { fprintf(stderr, "wrong format\n"); exit(1); } fin.close(); printf("%d rows and %d columns\n", rows, cols); int f = open(argv[1], O_RDONLY | O_BINARY); if (f<0) { fprintf(stderr, "can't read \"%s\"\n", argv[1]); exit(1); } int rowstoskip=rows/30, colstoskip=10; lseek(f, 2*cols, SEEK_SET); short int * data = new short int[cols]; for (int r=0; r1000) // different characters for altitudes c = '@'; else if (data[i]>100) c = 'X'; else if (data[i]>0) c = 'I'; fputc(c, stdout); } fputc('\n', stdout); } close(f); } $ CC bin.cpp $ a.out /home/www/geographical/bintiles/usaW85N30D5.dat rows rows=600 cols columns=600 IIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIII IIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIII II IIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIII I IIIIIIIIIIIIIIIIIIIIIIIII III I IIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIII I IIIIIIIIIIIIIIIIIIIIIIIII II IIIIIIIIIIIIIIIIIIIIIIII I IIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIII IIIIIIIIIIII IIIIIIIIII IIIIIIII III I $ a.out /home/www/geographical/bintiles/usaW125N50D60.dat rows rows=400 cols columns=800 IX@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXII@@@X@X@@@X@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXI XX X@IX@@XXXXXX@@@@@@X@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIXXXI IIX@XXXXX@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXI XXXXXXXX@@X@@@@@@@@@@X@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIIXXXXXXXXI IX@XX@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIIIIXXXXXIXII XX@@@@@@XX@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIIXX@IXXXIII I IX@@@@@@@@@X@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXI XXX@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIXIXI @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXII X@XX@@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIII X@IX@@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIII IIIX@@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXIII IXIX@@@@@@@@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXII IXIX@X@@XX@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXXIIXXXXXXXXXXXXXXXIII XXX@XXX@X@@@@@@@@@@@@@@@@@XXXXXXXXXXXXXIIIXXXXXXXX@XXXXXIIIII IX@@@XXXX@@@@@@@@@@@@@@@@XXXXXXXXXXXIIIIXXXXXXXXXXXXIIIII X@ XXXXXX@@@@@@@@@@@@XXXXXXXXXIIIIIIIXIIXXXXXXXXIIII X@IXXXXX@@@@@@@@@@@XXXXXXXXIXXXIIIIIXXIIIIXXXIIII XX XX@@@@@@@@@@XXXXXXXXXXXIIIIIIIXXIIXIIIIXIII I@ IXX@@@@@@@@@@@@XXXXXXXIIIIIIIIIIIIIIIIIIIII XX XXX@X@@@@@X@@XXXXXXXXIII III III X IXXX@@@@@@@@@XXXXXXII III XIX IXX@@@@@@@@XXXXXII III IXI IX@@@@@@@X@XXXXI III I I X IIX@@@@@@@@@XXXII I I II IX@@@@@@@@@XXI I II I @ X@@@@@@@@@XX I X@@@@@@@XII XIIIIII I IX@@@@@@XII I I IIII II I@@@@@@@@@XI IIIII IIIII $