Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Forse dovrei fare in questo modo
    codice:
    if((cfPtr = fopen("classifica.dat", "rb")) == NULL ) {
            printf("Il file non può essere aperto.\n");
        } else {
            printf("%28s", "CLASSIFICA\n");
            printf("%15s%20s", "SQUADRA", "PUNTI\n");
            while ( !feof(cfPtr) ) {
                for ( i = 0; i < n; i++ ) {
                fread( &ri, sizeof( struct riga), 1, cfPtr);
                }
            }
            fclose(cfPtr);
        }
        for ( i = 0; i < n; i++ ) {
                printf("%15s%19d", ri[i].nome, ri[i].punti);
                printf("\n");
            }
    giusto?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Il secondo modo è sbagliato perché non puoi utilizzare i due cicli (while e for).

    Nel primo modo però nella fread devi indirizzare l'elemento [i] della struttura ri
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Il secondo modo è sbagliato perché non puoi utilizzare i due cicli (while e for).

    Nel primo modo però nella fread devi indirizzare l'elemento [i] della struttura ri
    ok quindi nel secondo modo utilizzo solo il ciclo for e va bene ?
    codice:
    if((cfPtr = fopen("classifica.dat", "rb")) == NULL ) {
            printf("Il file non può essere aperto.\n");
        } else {
            printf("%28s", "CLASSIFICA\n");
            printf("%15s%20s", "SQUADRA", "PUNTI\n");
                for ( i = 0; i < n; i++ ) {
                fread( &ri, sizeof( struct riga), 1, cfPtr);
                }
    
            fclose(cfPtr);
        }
        for ( i = 0; i < n; i++ ) {
                printf("%15s%19d", ri[i].nome, ri[i].punti);
                printf("\n");
            }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    No ... utilizza il primo modo con il vettore ri[i]
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Quote Originariamente inviata da oregon Visualizza il messaggio
    No ... utilizza il primo modo con il vettore ri[i]
    ma indirizzare ri[i] in che senso?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quando scrivi

    fread(&ri,sizeof(struct riga),1, cfPtr);

    non devi usare ri ma ri[i] perché la riga non è una sola.

    Infatti nella for utilizzi ri[i]
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    ok grazie ( credevo che mettendo 1 nella fread mi leggesse uno per volta e li mettesse automaticamente nella struct senza specificare l'indice )

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non puoi programmare con i "credevo che". Devi leggere la documentazione di quello che usi, in questo caso fread

    http://www.cplusplus.com/reference/cstdio/fread/

    Il primo argomento è un puntatore della destinazione dei dati. Se il puntatore non è sempre diverso, leggerai sempre nello stesso spazio di memoria.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.