int main() { file_t* file; FILE* infile; char buf[256]; int result = 1; file_itr_t* itr; char* data; u32 len; uint line; if ((file = file_open("sorted.file", 1)) == NULL) { fprintf(stderr, "Failed to open sorted.file\n"); return 1; } infile = fopen("unsorted.txt", "r"); if (infile == NULL) { fprintf(stderr, "Failed to open unsorted.txt\n"); file_close(file); return 1; } line = 1; while (fgets(buf, 256, infile) != NULL) { len = strlen(buf) - 1; buf[len] = 0; if (file_insert(file, buf, len + 1) < 0) { fprintf(stderr, "file_insert failed on key %s (line %d)\n", buf, line); goto done; } line++; } fprintf(stderr, "Added %d records\n", line); if (file_sort(file) < 0) { fprintf(stderr, "failed to sort file\n"); goto done; } file_close(file); fclose(infile); if ((file = file_open("sorted.file", 0)) == NULL) { fprintf(stderr, "Failed to open sorted.file\n"); return 1; } if ((itr = file_itr_init(file)) == NULL) { fprintf(stderr, "file_itr_init failed"); goto done; } while ((result = file_itr_next(itr, &data, &len)) == 0) printf("%s\n", data); if (result < 0) { fprintf(stderr, "file_itr_next failed\n"); result = 1; } file_itr_finish(itr); done: fclose(infile); file_close(file); return result; }
int main() { int selection;; //Loop with switch statement drives the user interface //User keeps entering options until they quit do { printf("Please Select an Option\n"); printf("1-Computing pi\n"); printf("2-Computing Square Root\n"); printf("3-Displaying Primes\n"); printf("4-Processing Grades\n"); printf("5-Computing Tax\n"); printf("6-Solving Quadratic\n"); printf("7-Computing Factorials\n"); printf("8-Counting File\n"); printf("9-Sorting File\n"); printf("10-Student File\n"); printf("11-Quit\n"); scanf("%d",&selection); switch(selection) { case 1: //Compute pi { int n; printf("How many terms of pi do you wish to compute: "); scanf("%d",&n); printf("pi to %d terms is %lf\n",n,compute_pi(n)); break; } case 2: //Compute square root { double n; printf("Which square root do you wish to compute: "); scanf("%lf",&n); printf("the square root of %lf is %lf\n",n,compute_sqrt(n)); break; } case 3: //Display primes { int n; printf("Enter an number to calculate primes up to: "); scanf("%d",&n); display_primes(n); break; } case 4: //Process grades { process_scores(); break; } case 5: //Compute tax { int income; char status[10]; char state; printf("What is your income: "); scanf("%d",&income); printf("In state or out of state: "); scanf("\n%c",&state); printf("Are you single or married: "); scanf("%s",status); printf("Your taxes are: %lf\n",compute_tax(income,status,state)); break; } case 6: //Solving quadratic { double solution1; double solution2; double a; double b; double c; int solutions; printf("enter a: "); scanf("%lf",&a); printf("enter b: "); scanf("%lf",&b); printf("enter c: "); scanf("%lf",&c); solutions = quadratic(a,b,c,&solution1,&solution2); if (solutions) { printf("Solution 1: %lf\n",solution1); printf("Solution 2: %lf\n",solution2); } else { printf("There were no solutions\n"); } break; } case 7: //Computing factorial { int n; printf("Enter the factorial to compute: "); scanf("%d",&n); printf("%d! is %d\n",n, factorial(n)); break; } case 8: //counting file { char input_file[50]; int characters; int lines; printf("Enter the file name to open: "); scanf("%s",input_file); file_count(input_file,&characters,&lines); printf("Number of lines: %d\n",lines); printf("Number of characters including EOF: %d\n",characters); break; } case 9: //sorting file { char input_file[50]; char output_file[50]; printf("Enter the input file name: "); scanf("%s",input_file); printf("Enter the output file name: "); scanf("%s",output_file); file_sort(input_file,output_file); printf("Operation Complete\n"); break; } case 10: //student file { char input_file[50]; printf("Enter the input file name: "); scanf("%s",input_file); file_student(input_file); printf("Operation Complete\n"); break; } case 11: //quit { break; } default: //Error for incorrect entries printf("Your entry is invalid. Please try again\n"); } }while(selection != 11); //do until user quits return 0; }