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"); } }

Rispondi quotando
