Мне было интересно, есть ли лучший способ сделать это; скажем, мы читаем stdin в строку, используя fgets()
, где строка включает в себя всего n
целых чисел (например, 5 16 2 34
для n = 4
), что будет лучшим способом их извлечения? Должен быть лучший способ, чем этот хак:
for (i=0, j=0; i<n; ++i, j+=pos)
sscanf(string+j, "%d%n", &array[i], &pos); // Using %n makes me feel dirty
Я знаю, что возможно (и , казалось бы, проще) просто использовать что-то вроде for (i=0;i<n;++i) scanf("%d", array+i);
, но я бы предпочел не использовать scanf()
по понятным причинам. ¹