Есть ли хороший способ перебрать строку с sscanf
?
Допустим, у меня есть строка, которая выглядит следующим образом:
char line[] = "100 185 400 11 1000";
и я хотел бы напечатать сумму. Я бы хотел написать вот что:
int n, sum = 0;
while (1 == sscanf(line, " %d", &n)) {
sum += n;
line += <number of bytes consumed by sscanf>
}
но нет чистого способа получить эту информацию из sscanf
. Если бы он вернул количество использованных байтов, это было бы полезно. В таких случаях можно просто использовать strtok
, но было бы неплохо написать что-то похожее на то, что вы можете сделать из stdin
:
int n, sum = 0;
while (1 == scanf(" %d", &n)) {
sum += n;
// stdin is transparently advanced by scanf call
}
Есть ли простое решение, которое я забыл?