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.
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;
}
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...
Preciso che, anche se non credo proprio c'entri qualcosa col problema, ho aggiunto nel main la riga
codice:
srand(time(NULL));
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...
Qualcuno saprebbe aiutarmi?