sempre mantenendo la struttura del file che ti ho detto sopra:
in testa numero che rappresenta il numero di coppie parolachiave-risposta
quindi dal i in poi una riga per parola chiave e una per risposta
dovrebbe essere qualcosa del genere:
codice:
typedef struct{
char* parola_chiave;
char* risposta;
}casella_t;
int main(){
FILE *myfile;
int dim, i;
casella_t **vettore_dati;
casella_t *temp;
char* stringaTemp[1024+1];
myfile = fopen ("dati.txt", "r");
if(myfile == NULL){
printf("errore in lettura o file non trovato\n");
return EXIT_FAILURE;
}
fscanf(myfile, "%d", &dim); // dim è il numero in testa al file, rappresenta il numero di coppie di parole_chiave-risposte presenti nel file
vettore_dati = (casella_t**) malloc (dim * sizeof(casella_t*)); //allochi la memoria per il vettore
for(i = 0; i<0; i++){
temp = (casella_t*) malloc (sizeof(casella_t)); //allochi la casella
fgets(stringaTemp, 1024, myfile); //leggi e metti nella stringa temporanea la parola chiave
temp->parola_chiave = (char*) malloc( strlen(stringaTemp) * sizeof(char)); //allochi lo spazio corretto per la stirnga
strcpy(temp->parola_chiave, stringaTemp); //copi
fgets(stringaTemp, 1024, myfile); //leggi la risposta
temp->risposta = (char*) malloc( strlen(stringaTemp) * sizeof(char)); //allochi lo spazio corretto
strcpy(temp->risposta, stringaTemp); //copi
vettore_dati[i] = temp;
}
//tutto il resto del programma...
return EXIT_SUCCESS;
}