#include <stdio.h>
#include <stdlib.h>
int main(void){
    int i, j, size, *size_v, **vector;
    FILE *file;
    file=fopen("file.dat", "rt");
    if (file==NULL){
        printf("Exit ...");
        exit(1);
    }
    i = 0;//scan file
    while(EOF != fscanf(file, "%d", &size)){
        for(j = 0; j < size; j++){
            fscanf(file, "%*d");
        }
        i++;
    }
    rewind(file);
    size_v = malloc(i * sizeof(int));
    vector = malloc(i * sizeof(int*));
    i = 0;//read file
    while(EOF != fscanf(file, "%d", &size_v[i])){
        vector[i] = malloc(size_v[i] * sizeof(int));
        for(j = 0; j < size_v[i]; j++){
            fscanf(file, "%d", &vector[i][j]);
        }
        i++;
    }
    fclose(file);
    //print & deallocate
    size = i;
    for(i = 0; i < size; ++i){
        printf("%d\n", size_v[i]);
        for(j = 0; j < size_v[i]; ++j){
            printf("%d ", vector[i][j]);
        }
        printf("\n");
        free(vector[i]);
    }
    free(vector);
    free(size_v);
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void){
    int i, j, size, *vector;
    FILE *file;
    file=fopen("file.dat", "rt");
    if (file==NULL){
        printf("Exit ...");
        exit(1);
    }
    i = 0;
    while(EOF != fscanf(file, "%d", &size)){
        printf("%d\n", size);//each loop
        vector = malloc(size * sizeof(int));
        for(j = 0; j < size; j++){
            fscanf(file, "%d", &vector[j]);
        }
        for(j = 0; j < size; j++){
            printf("%d ", vector[j]);
        }
        printf("\n");
        free(vector);
        i++;
    }
    fclose(file);
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(void){
    int i, j, k, size, size_sum, *size_v, *vector;
    FILE *file;
    file=fopen("file.dat", "rt");
    if (file==NULL){
        printf("Exit ...");
        exit(1);
    }
    i = 0;//scan file
    size_sum = 0;
    while(EOF != fscanf(file, "%d", &size)){
        size_sum += size;
        for(j = 0; j < size; j++){
            fscanf(file, "%*d");
        }
        i++;
    }
    rewind(file);
    size_v = malloc(i * sizeof(int));
    vector = malloc(size_sum * sizeof(int));
    i = 0;//read file
    k = 0;
    while(EOF != fscanf(file, "%d", &size_v[i])){
        for(j = 0; j < size_v[i]; j++){
            fscanf(file, "%d", &vector[k++]);
        }
        i++;
    }
    fclose(file);
    //print & deallocate
    size = i;
    size_sum = 0;
    for(i = 0; i < size; ++i){
        printf("%d\n", size_v[i]);
        for(j = 0; j < size_v[i]; ++j){
            printf("%d ", vector[j + size_sum]);
        }
        printf("\n");
        size_sum += size_v[i];
    }
    free(vector);
    free(size_v);
    return 0;
}