Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    15

    [C]Lettura sequenziale di un file

    Salve a tutti, dovrei togliermi questo dubbio definitivamente per andare tranquilla all'esame che ho tra due giorni;
    Io ho un file ad esempio così:
    Roma 10
    Pechino 2
    Milano 7
    ecc

    con i nomi delle città (non è scritto da nessuna parte che non possano essere nomi formati da due parole) e io devo scrivere una lista mettendoli in ordine di numero... che funzione devo usare? ma soprattutto come la devo usare? io ho provato con un fscanf in questo modo

    codice:
     
    Nodo CostruisciLista (char NomeFile[100], Nodo lista) {
        fp=fopen(file, "r");
        char CittaCorr[M];
        int CittaNum, n=1, indi;
    
        if (fp==NULL) {
            printf("impossibile aprire il file\n");
            return lista;
        }
        while (indi!=10 && n<=10) {
            indi=fscanf(fp, "%s%d", CittaCorr, &CittaNum);
            if (CittaNum=n) {
                Nodo nuovo;
                nuovo=malloc(sizeof(Lista));
                strcpy(nuovo->citta.city, CittaCorr);
                nuovo->citta.posizione=CittaNum;
                nuovo->next=lista;
                lista=nuovo;
                n=n+1;}
    
    
        }
        fclose(fp);
        return lista;
    }
    senza successo.. come si legge in modo sequenziale da file? Anche dando importanza al tipo di dato che può interessarci? Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La fscanf va bene ma

    - devi prevedere uno spazio "%s %d"
    - indi cosa è? cosa pensi che debba essere? hai controllato cosa restituisce la fscanf dato che usi tale valore?
    - nella if devi scrivere == e non =
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    15
    indi dovrebbe essere ciò che restituisce la fscanf... da quanto so dovrebbe restituire il numero degli elementi letti

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Gli elementi eventualmente letti sono 2 (gli elementi sono quelli presenti nella singola riga)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    15
    si giusto. allora non va messa lì la condizione perchè altrimenti il ciclo termina subito

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