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?