Чтение строк из файла c и помещение int в массив (предыдущая строка содержит целое число, равное размеру следующей строки с разными целыми числами) - PullRequest
0 голосов
/ 25 октября 2019

Нам нужно сделать целочисленный массив из файла таким образом, чтобы верхняя строка файла имела размер, а следующая строка чисел находилась бы в массиве с размером целочисленного значения верхней строки.

Читаем целые числа из файла. Я пытаюсь решить с помощью счетчика во время цикла, который увеличивается, если мы переходим к следующей строке. Строки нечетных чисел (1,3,5,7 ..) имеют только одно целое число, которое является размером для массива, а строки четных чисел (2,4,6,8 ...) будут иметь числа, предназначенные для размещения в массиве.

Теперь, когда счетчик нечетный (когда 1), он смотрит на первую строку в файле. Это определит размер массива, номера которого находятся во 2-й строке.

Пример, если файл имеет

 3        //(line1) count=1(odd) -this case-> array size found is 3 
 5 6 2    //(line2) count=2(even) -this case-> array of size 3 is made
 5        //(line4) count=3(odd) -this case-> array size found is 5
 3 5 7 1 6 //(line4) count=4(even) -this case-> array of size 5 is made


3 will be used as a key to allocate the array of size 3 for [5 6 2]
then,
5 will be used as a key to allocate the array of size 3 for [3 5 7 1 6]
int main()
{
    int count=1;
    FILE* file = fopen("file.txt", "r");

    int num ,i, element;
    while (!feof (file) && num > 0){
        if (count%2==0){
            fscanf (file, "%d", &num);
        }
        else{
            int *arr = (int *)malloc(num*(sizeof(int)));

            fscanf (file, "%1d", &element);

            arr[i] = element;






            free(arr);

        }
        count++;
    }
    fclose (file);

    return 0;
}

Я не знаю, как мне использовать (количество), чтобы найти номер строки, которую мы повторяем в файле.

...