Нам нужно сделать целочисленный массив из файла таким образом, чтобы верхняя строка файла имела размер, а следующая строка чисел находилась бы в массиве с размером целочисленного значения верхней строки.
Читаем целые числа из файла. Я пытаюсь решить с помощью счетчика во время цикла, который увеличивается, если мы переходим к следующей строке. Строки нечетных чисел (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;
}
Я не знаю, как мне использовать (количество), чтобы найти номер строки, которую мы повторяем в файле.