Обработка файлов в C. Больше команд? - PullRequest
0 голосов
/ 12 марта 2012

Скажите, у меня есть файл, который содержит 100000 целых чисел.Каждое целое число находится на новой строке в файле.Моя задача - во-первых, сохранить эти целые числа в массиве, а затем, во-вторых, найти число возможных инверсий в этих 100000 чисел, используя алгоритм сортировки слиянием.Последняя часть, которую мне удалось сделать.

Я написал код для чтения каждой строки и сохранения каждой цифры в двумерном массиве.Например, скажем, 54667 находится в первой строке, а 67890 - во второй строке

Тогда код, который я написал, выполняет это

arr[i][j]=5 arr[i][j+1]=4 arr[i][j+2]=6........(and so on)
 arr[i+1][j]=6 arr[i+1][j+1]=7 arr[i+1][j+2]=8......

, а затем мне нужно восстановить эти целые числа следующим образом:умножение на подходящие степени 10 и сохранение их в одномерном массиве.

Тем не менее, при написании этого кода я почему-то был убежден, что должен быть более простой способ сделать это в C. Как и внет ли какой-либо функции или команды, которая облегчает эту работу?

1 Ответ

1 голос
/ 12 марта 2012

Да, просто используйте fgets и strtol каждую строку.

char line[LEN];
long array[NUM];
int i;

while (i < NUM && fgets(line, sizeof(line), stdin))
    array[i++] = strtol(line, NULL, 10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...