Example #1
0
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;
}
Example #2
0
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;
}