Salve sto lavorando ad un programma, un gioco di carte in cui le carte sono composte da un enumerazione corrispondente al seme e una frase, ovvero la didascalia della carta il deck � allocato su array dinamico e viene letto da un file.txt. Il problema � che non sono sicuro che la lettura sia andata a buon fine, perch� stampando dal while che permette la lettura, la stampa va a buon fine, ma se lo faccio esternamente adesso, con un for e gli indici stampa 0 per l'enumerazione e nulla per la frase. Questo mi impedisce di verificare se l'array � stata riempita correttamente e se la funzione shuffle svolge il suo dovere. Vi allego la parte del codice in questione, aiutatemi!
codice:
void printArray (Card deck[], int n){
int i;
for (i = 0; i < n; i++){
printf("%u\t%s ", deck[i].type, deck[i].phrase);
printf("\n");
}
}
codice:
void deckCreationMedium(Card* deck){
FILE * fp = fopen("---", "r+");
deck = (Card*)malloc(MEDIUM * sizeof(Card));
if(deck == NULL){
exit(-1);
}
while(!feof(fp)){
fscanf(fp, "%u %[^\n]s", &deck->type, &deck->phrase );
//fscanf(fp , "\n");
#if DEBUG_MODE == 1
printf("\n%u\t%s", deck->type, deck->phrase);
#endif
}
fclose(fp);
#if DEBUG_MODE == 0
printArray(deck, MEDIUM);
#endif
if(deck != NULL){
printf("ok\n");
}
}