Salve a tutti
Sto lavorando sul seguente codice, che estrae un un intero in maniera random, e poi apre un file di testo, in cui ci sono delle righe che iniziano per un intero, seguite da un punto, da uno spazio e da un obiettivo, che poi mi stampo a video.
Il codice lo metto tutto per completezza, ma l'unico mio problema è la funzione rand(), che, invece di estrarmi un numero che va da 1 a 9, come specificato, rilascia numeri tipo: 01, 31, 51, 21...codice:void extract_objective (Tplayer players [], int i) { int r, n; char c; BOOL founded=FALSE; FILE *fp; fp=fopen("objectives.txt", "r"); r=rand() % 9 +1; printf("r = %d", r); while(!feof(fp) && !founded) { fscanf(fp, "%d", &n); printf("%d\n", n); if(n==r) { while(c!='\n') { printf("%c", c); c=fgetc(fp); } founded=TRUE; } else { while(fgetc(fp)!='\n') { c=fgetc(fp); } } } players[i].objective=r; }
Preciso che, anche se non credo proprio c'entri qualcosa col problema, ho aggiunto nel main la riga
ho incluso correttamente la libreria <time.h>, ed, inoltre, all'interno dello stesso programma che sto creando, uso la funzione rand() molte volte, ed in tutti i casi si comporta correttamente...codice:srand(time(NULL));
Qualcuno saprebbe aiutarmi?

Rispondi quotando