#include #include #include #include #define LIM 256 // Read a line of maximum length int lim from file FILE into string s int fgetline(FILE *file,char *s,int lim) { int c,i=0; while (--lim > 0 && (c=fgetc(file)) != EOF && c != '\n') s[i++] = c; // if (c == '\n') // s[i++] = c; s[i] = '\0'; return i; } int main(int argc,char *argv[]) { int reverse=0; char line[LIM],pline[LIM],tlefile[LIM]; char line0[70],line1[70],line2[70]; FILE *file; int arg=0; // Decode options while ((arg=getopt(argc,argv,"c:rh"))!=-1) { switch(arg) { case 'c': strcpy(tlefile,optarg); break; case 'r': reverse=1; break; case 'h': default: printf("-c \n-r reverse\n"); return 0; } } if (reverse==0) { file=fopen(tlefile,"r"); while (fgetline(file,line,LIM)>0) { if (line[0]=='1') { strcpy(line0,pline); strcpy(line1,line); fgetline(file,line,LIM); strcpy(line2,line); printf("%s | %s | %s\n",line1,line2,line0); } else { strcpy(pline,line); } } fclose(file); } else { file=fopen(tlefile,"r"); while (fgetline(file,line,LIM)>0) { printf("%.70s\n%.70s\n%.70s\n",line+144,line,line+72); } fclose(file); } return 0; }