int main(int argc, char *argv[]) { FILE *fp = NULL; My402List *myList = NULL; myList = (My402List *)malloc(sizeof(My402List)); char *dir = argv[2]; DIR* directory = NULL; if(myList == NULL) { fprintf(stderr,"Memory allocation for the list failed!"); PrintErrorMessage(); } (void)My402ListInit(myList); if(argc < 2) { fprintf(stderr,"Error: Too less arguments\n"); exit(1); } if(argc > 3) { fprintf(stderr,"Error: Too many arguments\n"); exit(1); } if(argv[1][0] == '-') { fprintf(stderr,"Cannot have \'-\' in the argument\n"); exit(1); } if(argc >= 2) { if(strcmp(argv[1],"sort") == 0) { if(argc == 2) { fp = stdin; ReadFileInput(fp,myList); BubbleSortForwardList(myList); PrintList(myList); fclose(fp); } if(argc == 3) { directory = opendir(dir); if(directory != NULL) { closedir(directory); fprintf(stderr,"Error: Given path is a directory\n"); exit(1); } fp = fopen(argv[2],"r"); if(fp==NULL) { perror("Error "); exit(1); } ReadFileInput(fp,myList); fclose(fp); BubbleSortForwardList(myList); PrintList(myList); } } else { fprintf(stderr,"Error: \'sort\' should be the second argument\n"); exit(1); } } return 0; }
static void DoTest() { int num_items=64; My402List list, list2; memset(&list, 0, sizeof(My402List)); memset(&list2, 0, sizeof(My402List)); (void)My402ListInit(&list); (void)My402ListInit(&list2); CreateTestList(&list, num_items); RandomShuffle(&list, num_items); FindAllInList(&list, num_items); CopyTestList(&list, &list2); BubbleSortForwardList(&list, num_items); if (gnDebug > 0) PrintTestList(&list, num_items); BubbleSortBackwardList(&list2, num_items); if (gnDebug > 0) PrintTestList(&list2, num_items); CompareTestList(&list, &list2, num_items); My402ListUnlinkAll(&list); My402ListUnlinkAll(&list2); }
int main(int argc, char *argv[]) { My402List list; // My402ListElem *elem=NULL; memset(&list, 0, sizeof(My402List)); (void)My402ListInit(&list); //Transact t; FILE *fptr; //char address[100]="test.tfile"; char buf[200]; //printf("ARGC: %d\n",argc); if(argc<2)//if sort is missing { printf("Malformed command\n"); exit(0); } if((strcmp(argv[1],"sort")))//if second argument is not 'sort' { printf("Malformed command\n"); exit(0); } if(argc==2) { fptr=stdin; } if(argc==3) { if(!strstr(argv[2],".tfile")) { printf("Could not open file: %s\n",argv[2]); printf("Input file either a directory or not in correct format\n"); exit(0); } fptr=fopen(argv[2], "rt"); } if (fptr==NULL) { //perror("Error:"); // printf("%s",argv[2]); printf("Could not open file: %s!\n",argv[2]); // error in opening file printf("%s\n", strerror(errno)); exit(0); //perror("Error:"); // getch(); return 1; } else { while(fgets(buf, sizeof(buf), fptr) != NULL) { // if (fgets(buf, sizeof(buf), fptr) == NULL) // { // /* end of file */ // break; // } //else // { //printf("%s",argv[3]); //printf("==%s==",buf); //printf("COMING TILL HERE!!!\n"); if(strlen(buf)>1024) { printf("Invalid input, line is too long\n"); exit(0); } long timeint; char timec[30];//change size char op; //float amt; double a=0.0; char desc[40];//change size!!! //else { Transact *t; t=malloc(sizeof(struct data)); //printf("BUF: %s\n",buf); int i; char *start_ptr = buf; if(!strchr(start_ptr,'\t')) { printf("Invalid input, not enough info\n"); exit(0); } //char *nline_ptr; if(strchr(start_ptr,'\r')) { char *nline_ptr = strchr(start_ptr,'\r'); *nline_ptr++='\0'; } if(strchr(start_ptr,'\n')) { char *nline_ptr = strchr(start_ptr,'\n'); *nline_ptr++='\0'; } char *tab_ptr = strchr(start_ptr, '\t'); if (tab_ptr != NULL) { *tab_ptr++ = '\0'; // printf("%s\t",start_ptr); op=start_ptr[0]; //printf("OPERATOR= %c\n",op); t->op=op; if(((op!='+')&&(op!='-'))) { printf("Invalid input with Operator: %c\n",t->op); exit(1); } // printf("%c\t",t->op); } for(i=0;i<3;i++) { start_ptr = tab_ptr; // if(!strchr(start_ptr,'\t')) // { // printf("Invalid input, not enough info2\n"); // //exit(0); // } tab_ptr = strchr(start_ptr, '\t'); //nline_ptr= strchr(start_ptr, '\n'); if ((tab_ptr != NULL)) { *tab_ptr++ = '\0'; } if(i==0) { if(strlen(start_ptr)>=11) { printf("Invalid input in timestamp: %s\n",start_ptr); exit(0); } if(!((atoi(start_ptr)>0)&&(atoi(start_ptr)<time(NULL)))) { printf("Invalid input in timestamp\n"); exit(0); } timeint=atol(start_ptr); t->ltime=timeint; //printf("--TIME: %lu\t",timeint); strcpy(timec,ctime(&timeint));//time is stored in array time } else if(i==1) { //if(start_ptr[strlen(start_ptr)-3] if(strlen(start_ptr)<4)//min should have one digit before decimal, 2 after and decimal itself { printf("Invalid input, not enough digits or decimal\n"); exit(0); } // if((start_ptr[strlen(start_ptr)-3]!='.')&&(start_ptr[0]=='.')) // printf("%c",start_ptr[strlen(start_ptr)-3]); if((start_ptr[strlen(start_ptr)-3]!='.')) { printf("Invalid input, does not contain decimal or enough digits after decimal: %s\n",start_ptr); exit(0); } if(start_ptr[0]=='.') { printf("Invalid input, no digit before decimal\n"); exit(0); } a=atof(start_ptr); if((a>10000000)||(a<0)) { printf("Invalid input with Amount\n"); exit(1); } t->amt=a*100; // sprintf(chk, "%0.2f",a); // printf("STRING: %s\n",chk); // printf("Invalid input, does not contain decimal: %c\n",chk[strlen(chk)-2]); // // if(chk[strlen(chk)-3]!='.') // // printf("Invalid input, does not contain decimal: %c\n",chk[strlen(chk)-2]); //printf("AMOUNT: %f--\t",a); //printf("%f\t",a); //printf("%d\t",t->amt); } else if(i==2) { while(isspace(*start_ptr)) start_ptr++; if(*start_ptr == 0) // All spaces? { printf("Invalid input..No description\n"); exit(0); } if(strlen(start_ptr)>24) strncpy(desc,start_ptr,23); else strcpy(desc,start_ptr); strcpy(t->desc,desc); //t->desc=desc; //printf("Description%s",start_ptr); //printf("%s\n",t->desc); } // printf("%s\t",start_ptr); } //printf("\n"); if(checkTime(&list,t->ltime))//1 returned if same exists { printf("Two same timestamps detected\n"); exit(0); } //printf("CTIME:%s",ctime(&time)); //printf("Appending\n"); My402ListAppend(&list,t); } //} }//while loop } BubbleSortForwardList(&list,list.num_members); PrintTestList(&list,list.num_members); return(0); }
int main(int argc,char *argv[]) { FILE *fp; char line[2000]; int num_mem; My402List list; memset(&list, 0, sizeof(My402List)); (void)My402ListInit(&list); if(argc==1) { printf("malformed command\n"); exit(EXIT_FAILURE); } if(argc==4) { printf("malformed command\n"); exit(EXIT_FAILURE); } if(strlen(line)>1024) { printf("Length of line is more than 1024\n"); exit(EXIT_FAILURE); } if(argc == 3 && (strncmp(argv[1],"sort",strlen(argv[1]))==0)) { fp = fopen(argv[2], "r"); if (fp==NULL) { fprintf(stderr, "Unable to open '%s'\n",argv[3]); exit(EXIT_FAILURE); } while (fgets(line,2000, fp)!=NULL) { //printf("%s\n",line); parse_line(line, &list); } fclose(fp); } else if(argc == 2 && (strncmp(argv[1],"sort",strlen(argv[1]))==0)) { fp =stdin; if (fp==NULL) { fprintf(stderr, "Unable to open '%s'\n",argv[3]); exit(EXIT_FAILURE); } while (fgets(line,2000, fp)!=NULL) { parse_line(line, &list); } fclose(fp); } else { printf("Malformed Command"); Usage(); } num_mem=My402ListLength(&list); BubbleSortForwardList(&list,num_mem); printlist(&list); return 0; }
main( int argc, char *argv[] ) { int status; char tt; unsigned int ti; float ff; char amt[10]; char des[100]; int number = 1024; char line[1026]; My402List *list =(My402List *)malloc(sizeof(My402List)); printf("start"); FILE * fp; if( argc == 1) { fp = stdin; if(ferror (fp)) { printf("error opening file!"); clearerr(fp); exit(0); } } else { fp = fopen( "gg.txt" , "r" ); if(ferror (fp)) { printf("error opening file!"); clearerr(fp); exit(0); } else { My402ListElem *elem = (My402ListElem *)malloc(sizeof(My402ListElem)); status = My402ListInit(list); if(status != FALSE) { while( fgets(line,number,fp) != NULL) { sscanf(line,"%c\t%d\t%s\t%[^\n]s",&tt,&ti,amt,des); printf("%c\n%d\n%s\n%s\n",tt,ti,amt,des); Mytransaction * tr =(Mytransaction*)malloc(sizeof(Mytransaction)); tr->transtype = tt; tr->time = ti; strcpy( tr->amounts , amt ); strcpy( tr->desc , des ); status = Mychecker(list,tr); if(status == TRUE) { status = My402ListPrepend(list,tr); if(status != TRUE ) printf("not prepended"); } } } else { printf("list not initialised"); } } BubbleSortForwardList(list,My402ListLength(list)); //***output********* printf("\n00000000011111111112222222222333333333344444444445555555555666666666677777777778"); printf("\n12345678901234567890123456789012345678901234567890123456789012345678901234567890"); printf("\n+-----------------+--------------------------+----------------+----------------+"); printf("\n| Date | Description | Amount | Balance |"); printf("\n+-----------------+--------------------------+----------------+----------------+"); MyListTraverse(list); printf("\n+-----------------+--------------------------+----------------+----------------+"); } }