C, читая несколько чисел из единственной входной строки (scanf?)

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

5
1 2 3 4 99

должен создать массив, содержащий {1,2,3,4,99}

Что самый быстрый путь состоит в том, чтобы сделать так? Моя проблема состоит в том, чтобы считать несколько чисел без цикличного выполнения через целую строку, проверяющую, является ли это пространство или число?

Спасибо.

5
задан Deepu 22 April 2013 в 17:22
поделиться

2 ответа

int i, size;
int *v;
scanf("%d", &size);
v = malloc(size * sizeof(int));
for(i=0; i < size; i++)
    scanf("%d", &v[i]);

Не забудьте бесплатно (v) после того, как закончите!

Кроме того, если по какой-то причине у вас уже есть числа в строке, вы можете использовать sscanf ()

16
ответ дан 18 December 2019 в 09:48
поделиться

scanf () - это своего рода боль в шее. Обратитесь к strtol () , чтобы узнать о таких проблемах, это очень упростит вашу жизнь.

0
ответ дан 18 December 2019 в 09:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: