SHARE
TWEET

Untitled

a guest May 19th, 2017 46 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <ctype.h>
  5. void sortFloatArray(float* arr, int size);
  6. int readFloatsFromFile(float* arr, FILE* file);
  7. int outputFloatsToFile(float* arr, int size, FILE* file);
  8. int main(int argc, char* argv[]){
  9.     char buffer[BUFSIZ + 1];
  10.     float nums[20000];
  11.     FILE *pfile;
  12.     FILE *ofile;
  13.  
  14.     if(argc > 1){
  15.         pfile = fopen(argv[1], "r");
  16.         ofile = fopen(argv[0], "w");
  17.     }else{
  18.         puts("Input a filename: ");
  19.         gets(buffer);
  20.         pfile = fopen(buffer, "r");
  21.         puts(buffer);
  22.     }
  23.     int size = readFloatsFromFile(nums, pfile);
  24.     if(size == 0){
  25.         puts("FILE NOT FOUND");
  26.         return 0;
  27.     }
  28.     sortFloatArray(&nums[0], size);
  29.     if(ofile == NULL){
  30.         puts("Output File Name: ");
  31.         gets(buffer);
  32.         pfile = fopen(buffer, "w");
  33.     }
  34.     if(!outputFloatsToFile(&nums[0], size, pfile)){
  35.         puts("CANNOT CREATE FILE");
  36.         return 0;
  37.     }
  38.  
  39.     return 1;
  40. }
  41. int readFloatsFromFile(float* arr, FILE* file){
  42.     int ndx = 0;
  43.     char buffer[BUFSIZ + 1];
  44.     if(file != NULL){
  45.         while(fgets(buffer, sizeof(buffer), file) != NULL){
  46.             if(buffer[0] != '\n'){
  47.                 arr[ndx] = atof(buffer);
  48.                 ndx++;
  49.             }
  50.         }
  51.     }else{
  52.         puts("FILE NOT FOUND");
  53.         return 0;
  54.     }
  55.     fclose(file);
  56.     return ndx;
  57. }
  58. int outputFloatsToFile(float* arr, int size, FILE* file){
  59.     if(file != NULL){
  60.         int i;
  61.         for(i = 0;i < size; i++){
  62.             fprintf(file, "%f\n", arr[i]);
  63.         }
  64.     }else{
  65.         puts("CANNOT CREATE FILE");
  66.     }
  67. }
  68. void sortFloatArray(float* arr, int size){
  69.     int i;
  70.     int j = 0;
  71.     for(i = 1; i < size; i++){
  72.         float temp = *(arr+i);
  73.         j = i-1;
  74.         while(j >= 0 && *(arr+j) > temp){
  75.             *(arr+(j + 1)) = *(arr+(j));
  76.             j--;
  77.         }
  78.         *(arr+(j + 1)) = temp;
  79.     }
  80. }
RAW Paste Data
Want to get better at C?
Learn to code C in 2017
Top