salve ragazzi è la prima volta ke scrivo ma vi seguo tanto anche perchè molto spesso trovo le soluzioni ai miei problemi guardando quelle degli altri
questa volta però nn sono riuscito a trovare la soluzione al mio problema e speravo ke qualcuno di voi mi potesse aiutare.La mia situazione è questa, devo creare un dizionario di sinonimi (massimo 5 per ogni parola) ke è indicizzato per lettere dell'alfabeto. ora io ho provato a creare una "struttura" con campi: indice, parola[5][20], sinonimo[4][20] ma nn riesco nella fase di lettura a leggermi questi dati da un file!
vi posto il codice..
Codice PHP:...
//CODICE SCRITTURA FILE
typedef struct Dizionario
{
char indice;
struct {
char parola[20];
struct {
char sinonimi[20];
}s[5];
}p[4];
}d;
int i=0,f=0,c=0;
void main()
{
FILE *ofp;
d dizionario[23];
ofp= fopen("dizionario.dat", "wb");
dizionario[1].indice=97 //valore ascii
;
i=0;
while(i!=2)
{
i++;
dizionario[i].indice=dizionario[i].indice+1;
fwrite(&dizionario,sizeof(dizionario),1,ofp);
c=0;
while (!feof(stdin) && (c!=4))
{
fflush(stdin);
c++;
printf("i=%d,c=%d",i,c);
printf("\ninserisci la %d parola dell'indice %c: ",c,dizionario[i].indice);
scanf("%s", &dizionario[i].p[c].parola);
fwrite(&dizionario[i].p,sizeof(dizionario[i].p),1,ofp);
f=0;
while(f!=5)
{
f++;
printf("\n inserisci il %d sinonimo della parola %s: ",f,dizionario[i].p[c].parola);
scanf("%s", &dizionario[i].p[c].s[f].sinonimi);
fwrite(&dizionario[i].p[c].s,sizeof(dizionario[i].p[c].s),1,ofp);
}
}
}
fclose(ofp);
fflush(stdin);
}
il programma nn mi segnale errori ma poi quando mando in esecuzione la lettura mi dice "la memoria nn poteva essere read ....."Codice PHP://CODICE LETTURA
void main()
{
FILE *fl;
d dizionario[2];
d dizionario1[2];
fflush(stdin);
fl= fopen("dizionario.dat", "rb");
if (fl){
i=0;
for (i=0; i<=2; i++)
{
fscanf(fl,"%c",dizionario[i].indice);
dizionario1[i].indice=dizionario[i].indice;
c=0;
for (c=1; c<=4; c++)
{
fscanf(fl,"%s",dizionario[i].p[c].parola);
strcpy(dizionario1[i].p[c].parola,dizionario[i].p[c].parola);
f=0;
for (f=1; f<=5; f++)
{
fscanf(fl,"%s",dizionario[i].p[c].s[f].sinonimi);
strcpy(dizionario1[i].p[c].s[f].sinonimi, dizionario[i].p[c].s[f].sinonimi);
}
}
}
fclose(fl);
i=0;
c=0;
f=0;
for (i=0; i<=2; i++)
{
printf("indice=%c\n",dizionario1[i].indice);
c=0;
for (c=1; c<=4; c++)
{
printf("%d parola=%s\n",c,dizionario1[i].p[c].parola);
f=0;
for (f=1; f<=5; f++)
{
printf("%d sinonimo=%s",f,dizionario1[i].p[c].s[f].sinonimi);
}
}
}
}
}
vi prego ragazzi mi potete aiutare devo completare questo progetto per l'università :S
grazie in anticipo


Rispondi quotando
