questo:
codice:
while (fscanf(fdat, "%d%d%d", &n1, &n2, &n3) == 3) {
printf("%5s%4d%5s%4d%5s%4d%6s%4d\n",
"N1:", n1, "N2:", n2,
"N3:", n3, "Sum:", n1 + n2 + n3);
}
significa:
codice:
finchè fscan restituisce un valore pari a 3
stampa "N1: n1 N2: n2 N3: n3 Sum: n1+n2+n3"
Il valore di ritorno di fscanf ha un significato ben preciso:
se stai studiando su di un libro, quasi certamente questo contiene
la spiegazione delle varie funzioni della libreria standard.
Il suo utilizzo con == 3 garantisce che siano letti 3 numeri
convertibili a int; così se, ad esempio, il file contiene
13 numeri, l'ultimo viene sì letto, ma il ciclo non viene eseguito.
Nella printf %5s significa: il parametro corrispondente deve
essere stampato come se fosse una stringa, con un campo
di caratteri pari a 5; %4d vuol dire la stessa cosa, solo
che il parametro corrispondente viene stampato come un int
e con un campo di 4 caratteri.
Per farti capire:
codice:
printf("%10s%10s%10s", "Hello", "world", "!!!");
stampa:
Hello world !!!