Salve a tutti ragazzi, sto provando a svolgere un semplice esercizio, in cui devo acquisire una matrice 10X10 da un file di testo e poi stamparla a schermo.
Il file di testo è composto dai valori della matrice e dalla sua dimensione (elencata per ultima)
Il programma,dopo aver letto i valori da file, li memorizza in un vettore e poi effettua il passaggio da vettore a matrice.
Sto avendo alcuni problemi per quanto riguarda l'output prodotto dal programma, potreste indicarmi il perchè?
Questo è il codice del programma:
codice:
#include <stdio.h>
int dimensione(FILE*);
void acquisisci_matrice(FILE*,int, unsigned char(*)[10]);
void visualizza_matrice(unsigned char(*)[10], int);
void main()
{
FILE *fp;
int dim=0;
unsigned char A[10][10];
fp=fopen("matrice2.txt", "r");
if(fp==NULL) printf("File non esistente\n");
else
{
dim=dimensione(fp);
fclose(fp);
if(dim==0) printf("File vuoto!");
else
{
fp=fopen("matrice.txt", "r");
printf("La dimensione e' %d ",dim);
acquisisci_matrice(fp,dim,A);
visualizza_matrice(A,dim);
fclose(fp);
}
}
}
void acquisisci_matrice(FILE *fp, int DIM, unsigned char(*matrice)[10])
{
unsigned char vett[101];
unsigned char V;
int i=0;
printf("Acquisizione\n");
while(fscanf(fp,"%s", &V)!=EOF)
{ vett[i]=V; i++;
for(i=0;i<DIM;i++) printf("%c",vett[i]);
}
i=0;
printf("Passaggio da vettore a matrice\n");
for(int j=0;j<DIM;j++) {
for(int k=0;k<DIM; k++)
{ matrice[j][k]=vett[i]; i++; };
};
}
int dimensione(FILE *fp)
{ int DIM=0, V;
while(fscanf (fp, "%d", &V)!=EOF)
DIM=V;
return DIM;
mentre il file matrice.txt è semplicemente questo qui:
codice:
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
10
l'output che mi dà è il seguente:
codice:
La dimensione e' 10 Acquisizione
16789012341678901234Passaggio da vettore a matrice
16789012341678901234567890123456789012345678901234567890123456789012345678901234
5678901234567890 ÌÌÌPress any key to continue
Non capisco perchè visualizza i numeri in questo modo, e non capisco cosa sbaglio. Sicuramente ho disposto male i dati nel file, ma come dovrei disporli? Grazie in anticipo per l'aiuto e la pazienza