Salve, stavo tentando di fare un programmino che leggesse un file di interi strutturato in questo modo:
codice:
3,5
1 1 1 , 2 2 2 , 3 3 3 , 4 4 4 , 5 5 5
11 11 11 , 22 22 22 , 33 33 33 , 44 44 44 , 55 55 55
111 111 111 , 222 222 222 , 333 333 333 , 444 444 444 , 555 555 555
3,7
1 1 1 , 2 2 2 , 3 3 3 , 4 4 4 , 5 5 5 , 6 6 6 , 7 7 7
11 11 11 , 22 22 22 , 33 33 33 , 44 44 44 , 55 55 55 , 66 66 66 , 77 77 77
111 111 111 , 222 222 222 , 333 333 333 , 444 444 444 , 555 555 555 , 665 665 665 , 777 777 777
....
quindi il file contiene delle matrici di interi (anche negativi) dove la prima riga contiene la dimensione della prima matrice e poi la matrice stessa, dove ogni elemento della matrice è costituito da tre numeri;
Ho iniziato a fare un programmino ma ho trovato un problema,
una volta letti i valori di numero di righe e colonne vorrei scorrere la matrice fino alla fine della riga (\n)
Quindi faccio così:
codice:
while (vir!='\n') {
fscanf(myfile,"%d %d %d %c",&xx,&yy,&zz,&vir);
...
Con questo prendo gli elementi a tre a tre e anche la virgola che separa i gruppi di elementi, va bene per tutti i gruppi della matrice tranne l'ultimo! Ad esempio una volta attraversata tutta la prima riga il valore che mi torna la fscanf è il seguente:
"5 5 5 1" dove l'uno è il primo carattere della riga successiva! Perchè non mi trova lo '\n'?? Nel file c'è l'acapo!
Aiutatemi grazie!