Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    20

    [C] Errore restituzione valori funzione rand()

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    20

    Mancavo semplicemente uno "/n" all'interno del printf che seguiva l'inizializzazione di r... non mettendolo, andava ad unirsi ad una riga successiva, in cui compariva sempre uno, e dava la sensazione che il numero fosse sempre "n1"...
    Scusate
    Potete chiudere.

  3. #3

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    20
    Sì, vabbè, la fretta...

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [C] Errore restituzione valori funzione rand()

    Originariamente inviato da be_ar
    BOOL founded=FALSE;
    Usi "founded" per "trovato"? Giusto per essere pignoli: "find" è irregolare, il participio passato è "found"
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    20
    Originariamente inviato da Alex'87
    Usi "founded" per "trovato"? Giusto per essere pignoli: "find" è irregolare, il participio passato è "found"
    Sì, lo usavo per quello. Anche se non credo proprio il prof ci faccia caso, grazie, correggerò!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.