Non la scanf, ma sscanf. I dati arrivano dalla stringa che ho letto dal file, non dallo stdin.
Il problema per cui non riuscivo ad usare sscanf, era che:
1) prima dei dati dell'array ne avevo altri, e non sapevo come iniziare la lettura dal punto corretto della stringa
2) sscanf in ogni caso non funziona nei cicli, dato che ogni volta ricomincia a leggere dall'inizio della stringa:
L'output di questo programma ècodice:#include <stdio.h> #include <stdlib.h> int main() { int v[10]; char str[] = "10 11 12 13 14 15 16 17 18 19"; int i = 0; for (i = 0; i < 10; i++) sscanf(str, "%d", &v[i]); for (i = 0; i < 10; i++) printf("%d, ", v[i]); return 0; }
e noncodice:10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
come vorrei io. Per questo ho dovuto usare strtok.codice:10, 11, 12, 13, 14, 15, 16, 17, 18, 19,

Rispondi quotando