/* read FITS header $Id: read_fits_hdr.c,v 1.2 2007/11/27 18:31:10 nathan Exp $ - depends on 80 space lines to find beginning of lines $Log: read_fits_hdr.c,v $ Revision 1.2 2007/11/27 18:31:10 nathan added newline for each row; return 0 if error */ #include int main (int argc, char **argv) { FILE *fd; char c; unsigned int charcounter = 0; unsigned int endflag = 0; if(argc < 1) { printf("Usage: %s filename\n",argv[0]); return(1); } else printf("Reading %s\n",argv[1]); if((fd = fopen( argv[1], "r")) == NULL) { perror("Error opening file"); return(0); } while((c = fgetc(fd)) != EOF) { printf("%c",c); switch(c) { case 'E': if( endflag == 0 && charcounter == 0) endflag = 1; if( charcounter != 0) endflag = 0; break; case 'N': if( endflag == 1 && charcounter == 1) endflag = 2; if( charcounter != 1) endflag = 0; break; case 'D': if( endflag == 2 && charcounter == 2) endflag = 3; if( charcounter != 2) endflag = 0; break; default: endflag = 0; break; } charcounter++; if(charcounter == 80) charcounter = 0; if(charcounter == 0) printf("\n"); if( endflag == 3) break; } fclose(fd); printf("\n"); }