Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int parse_size(char *line)
  6. {
  7.     char breakset[] = "0123456789";
  8.     int number = atoi(strpbrk(line, breakset));
  9.     return number;
  10. }
  11.  
  12. void sort_file()
  13. {
  14.     // sortarea ...
  15. }
  16.  
  17. int main()
  18. {
  19.     FILE *fp;
  20.     int read;
  21.     int len = 0;
  22.     char *line = NULL;
  23.     char **lines = NULL;
  24.     int lines_count = 0;
  25.     int *size_array;
  26.  
  27.     // calculam cite linii sunt in fisier pentru a aloca memorie
  28.     fp = fopen("file.txt", "r");
  29.     if (fp == NULL)
  30.         return -1;
  31.     while ((read = getline(&line, &len, fp)) != -1) {
  32.         lines_count++;
  33.     }
  34.     fclose(fp);
  35.     printf("%d\n", lines_count);
  36.  
  37.     // alocam meorie si citim toate liniile intrun char** array si marimele intrun int array
  38.     fp = fopen("file.txt", "r");
  39.     int i = 0;
  40.     lines = malloc(lines_count * sizeof(char));
  41.     size_array = malloc(sizeof(int) * lines_count);
  42.     while ((read = getline(&line, &len, fp)) != -1) {
  43.         lines[i] = malloc(sizeof(char) * (read + 1));
  44.         lines[i] = line;
  45.         size_array[i] = parse_size(line);
  46.         printf("LINE [%d]:\n    %s", i, lines[i]);
  47.         printf("    size:%d\n", size_array[i]);
  48.         i++;
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement