Facebook
From Gamboge Cheetah, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 48
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     FILE *fp;
  6.  
  7.     //test purposes - populate the binary file
  8.     //task 2.a
  9.     if((fp = fopen("binaryfile1", "wb")) == NULL){
  10.         printf("Cannot open file. \n");
  11.         exit(1);
  12.     }
  13.  
  14.  
  15.     int num;
  16.     //int arr_count = 0;
  17.     while(scanf("%d", &num) != EOF){
  18.         if(fwrite(&num, sizeof(int), 1, fp) != 1){
  19.             printf("Write error occured when writing nums. \n");
  20.             exit(1);
  21.         }
  22.         //arr_count++;
  23.     }
  24.  
  25.     fclose(fp);
  26.  
  27.     //exercises
  28.     //READ FILE
  29.     if((fp = fopen("binaryfile1", "rb")) == NULL){
  30.         printf("Cannot open file. \n");
  31.         exit(1);
  32.     }
  33.    
  34.     int odd = 0;
  35.     int even = 0;
  36.     //int arr[arr_count];
  37.  
  38.     int *arr;
  39.     arr = (int*) malloc(sizeof(int));
  40.  
  41.     int res;
  42.     int iter = 0;
  43.     while((res = fread(&num, sizeof(int), 1, fp)) != 0){
  44.         if(res != 1){
  45.             printf("Read error occured. \n");
  46.             exit(1);
  47.         }else{
  48.             //arr[i] = num;
  49.             if(iter != 0){
  50.                 arr = realloc(arr, (iter+1) * sizeof(int));
  51.             }
  52.             arr[iter] = num;
  53.             iter++;
  54.             if(num % 2 == 0) {
  55.                 even++;
  56.             }else{
  57.                 odd++;
  58.             }
  59.         }
  60.     }
  61.  
  62.     //task 2.b
  63.     printf("Number of even numbers in binary file is %d\n", even);
  64.     printf("Number of odd numbers in binary file is %d\n", odd);
  65.  
  66.     fclose(fp);
  67.  
  68.     //task 2.v
  69.     FILE *txt;
  70.  
  71.     if((txt = fopen("txtfile1", "w")) == NULL){
  72.         printf("Cannot open file. \n");
  73.         exit(1);
  74.     }
  75.  
  76.     //sort array
  77.     for(int i = 0; i < iter - 1; i++){
  78.         for(int j = 0; j < iter - i - 1; j++){
  79.             if(arr[j] > arr[j+1]){
  80.                 int temp = arr[j];
  81.                 arr[j] = arr[j+1];
  82.                 arr[j+1] = temp;
  83.             }
  84.         }
  85.     }
  86.  
  87.     for(int i =  0; i < iter; i++){
  88.         fprintf(txt, "%d ", arr[i]);
  89.     }
  90.  
  91.     free(arr);
  92.  
  93.     fclose(txt);
  94.    
  95.     return 0;
  96. }

Replies to Untitled rss

Title Name Language When
Re: Untitled Melodic Water Vole text 3 Years ago.