Advertisement
Sam-Sampaio

Simple_extract_number_float

Jul 7th, 2019
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.31 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // Author: Sam Sampaio
  5.  
  6. int main(void) {
  7.  
  8.     char buffer[256] = {0};
  9.     float v1[256] = {0}, v2[256] = {0}, v3[256] = {0};
  10.     int i =0, j = 0, k = 0, l = 0;
  11.  
  12.     float *s[3] = {v1,v2,v3};
  13.  
  14.     int a, b;  
  15.    
  16.     float x[256], y[256];
  17.  
  18.  
  19.     FILE *fp;
  20.  
  21.     if(!(fp = fopen("arquivo.txt", "r"))) {
  22.             perror("Msg: ");
  23.             exit(EXIT_FAILURE);
  24.     }
  25.  
  26.     while((buffer[i] = fgetc(fp)) != EOF) {    
  27.            if(buffer[i] >= '0' &&
  28.               buffer[i] <= '9') {
  29.             if(buffer[i-1] == '.' && buffer[i-2] >= '0'
  30.               && buffer[i-2] <= '9') {
  31.              a = buffer[i] - 48;
  32.              b = buffer[i-2] - 48;
  33.              x[j] = (b << 3) + (b << 1) + a;
  34.              y[j] = x[j] / 10;
  35.              s[l][k] = y[j];
  36.              k++;
  37.              j++;
  38.                }
  39.          }  
  40.  
  41.            if(buffer[i] == '\n') {
  42.                  l++;
  43.                  k = 0;
  44.              }          
  45.            
  46.             i++;
  47.     }
  48.      fclose(fp);
  49.    
  50.     for(i=0; i < 3; i++)
  51.       printf("%0.2f ", v1[i]);
  52.  
  53.      putchar('\n');
  54.  
  55.     for(i=0; i < 3; i++)
  56.       printf("%0.2f ", v2[i]);
  57.  
  58.      putchar('\n');
  59.      
  60.     for(i=0; i < 3; i++)
  61.       printf("%0.2f ", v3[i]);
  62.  
  63.      putchar('\n');
  64.  
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement