Czy istnieje dobry sposób na zapętlenie ciągu znaków z sscanf
?Jak korzystać z sscanf w pętlach?
Powiedzmy mam ciąg znaków, który wygląda tak:
char line[] = "100 185 400 11 1000";
i chciałbym, aby wydrukować sumę. Co Naprawdę chciałbym napisać to:
int n, sum = 0;
while (1 == sscanf(line, " %d", &n)) {
sum += n;
line += <number of bytes consumed by sscanf>
}
ale nie ma czysty sposób, aby uzyskać te informacje Spośród sscanf
. Jeśli zwróci liczbę zużytych bajtów, byłoby to użyteczne. W takich przypadkach, można po prostu użyć strtok
, ale byłoby miło, aby móc napisać coś podobnego do tego, co można zrobić z stdin
:
int n, sum = 0;
while (1 == scanf(" %d", &n)) {
sum += n;
// stdin is transparently advanced by scanf call
}
istnieje proste rozwiązanie, ja zapominam?
+1, pokonałeś mnie. – schot
+1, skąd o tym wiesz? –
@ Zielony kod: W moim przypadku 'man sscanf'. – schot