C'è un buon modo per eseguire il loop su una stringa con sscanf
?Come usare sscanf in loop?
Diciamo che ho una stringa che assomiglia a questo:
char line[] = "100 185 400 11 1000";
e mi piacerebbe stampare la somma. Quello che mi piacerebbe davvero scrivere è questo:
int n, sum = 0;
while (1 == sscanf(line, " %d", &n)) {
sum += n;
line += <number of bytes consumed by sscanf>
}
ma non c'è modo pulito per ottenere tali informazioni da sscanf
. Se restituisse il numero di byte consumati, sarebbe utile. In casi come questo, si può solo usare strtok
, ma sarebbe bello essere in grado di scrivere qualcosa di simile a quello che si può fare da stdin
:
int n, sum = 0;
while (1 == scanf(" %d", &n)) {
sum += n;
// stdin is transparently advanced by scanf call
}
C'è una soluzione semplice che sto dimenticando?
+1, mi hai battuto. – schot
+1, come lo sapevi ??? –
@Green Code: Nel mio caso 'man sscanf'. – schot