Wie verwende ich sscanf in Schleifen?

Gibt es eine gute Möglichkeit, eine Zeichenfolge mit @ zu durchlaufesscanf?

Sagen wir, ich habe eine Zeichenfolge, die so aussieht:

char line[] = "100 185 400 11 1000";

und ich möchte die Summe ausdrucken. Was ich wirklich gerne schreiben würde, ist folgendes:

int n, sum = 0;
while (1 == sscanf(line, " %d", &n)) {
  sum += n;
  line += <number of bytes consumed by sscanf>
}

, aber es gibt keinen sauberen Weg, um diese Informationen aus @ zu bekommsscanf. Wenn die Anzahl der verbrauchten Bytes zurückgegeben würde, wäre dies nützlich. In solchen Fällen kann man einfach @ verwendstrtok, aber es wäre schön in der Lage zu sein, etwas Ähnliches zu schreiben, wie Sie es von @ aus tun könnestdin:

int n, sum = 0;
while (1 == scanf(" %d", &n)) {
  sum += n;
  // stdin is transparently advanced by scanf call
}

Gibt es eine einfache Lösung, die ich vergesse?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage