Advertisement
Guest User

es4C.c

a guest
Apr 25th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.36 KB | None | 0 0
  1. #include "es4C.h"
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. int lista_parole(const char *input, const char *output){
  7.   FILE *in, *out;
  8.   char *line_buf_in = NULL;
  9.   size_t line_buf_size_in;
  10.   ssize_t line_size_in;
  11.   int i;
  12.    
  13.     /*apre input.txt in lettura*/
  14.   in = fopen(input, "r");
  15.     /*apre output.txt in scrittura*/
  16.   out = fopen(output, "w");
  17.  
  18.     /*controlla che si possano effettivamente aprire e non ci siano errori (es: files inesistenti)*/
  19.   if (in && out){
  20.    
  21.     /*prende il contenuto della riga, mette i caratteri dentro line_buf_in che è praticamente un array di char*/
  22.     line_size_in = getline(&line_buf_in, &line_buf_size_in, in);
  23.  
  24.     /*finchè ci sono linee*/
  25.     while (line_size_in >= 0){
  26.    
  27.         /*finché non arrivo alla fine della linea*/
  28.       for(i = 0; i < line_size_in; i++){
  29.         /*se line_buf_in[i] è uno spazio vuol dire che la parola è finita quindi stampo il carattere di nuova riga*/
  30.         if (line_buf_in[i] == ' '){
  31.           fprintf(out, "\n");
  32.         /*altrimenti stampo carattere per carattere la parola sul output.txt*/
  33.         } else {
  34.           fprintf(out, "%c", line_buf_in[i]);
  35.         }
  36.       }
  37.  
  38.         /*leggo una nuova linea, ritorna -1 se sono finite*/
  39.       line_size_in = getline(&line_buf_in, &line_buf_size_in, in);
  40.     }
  41.  
  42.     fclose(in);
  43.     fclose(out);
  44.     return 1;
  45.   } else {
  46.     return 0;
  47.   }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement