¿Hay una buena manera de recorrer una cadena con sscanf
?¿Cómo usar sscanf en loops?
Digamos que tengo una cadena que tiene este aspecto:
char line[] = "100 185 400 11 1000";
y me gustaría imprimir la suma. Lo que realmente me gusta escribir es la siguiente:
int n, sum = 0;
while (1 == sscanf(line, " %d", &n)) {
sum += n;
line += <number of bytes consumed by sscanf>
}
pero no hay manera limpia para conseguir que la información de sscanf
. Si devuelve la cantidad de bytes consumidos, sería útil. En casos como este, uno sólo puede utilizar strtok
, pero sería agradable ser capaz de escribir algo similar a lo que se puede hacer desde stdin
:
int n, sum = 0;
while (1 == scanf(" %d", &n)) {
sum += n;
// stdin is transparently advanced by scanf call
}
¿Hay una solución simple que estoy olvidando?
+1, me ganaste. – schot
+1, ¿cómo lo sabías? –
Código @Green: En mi caso 'man sscanf'. – schot