Modifica FILE in C

di il
3 risposte

Modifica FILE in C

Ciao a tutti!
Sto lavorando da 2 giorni ad un progetto per la gestione di una piccola biblioteca e sono arrivato al punto che una volta salvati i libri in un file in questo modo:

la-divina-commedia,dante-alighieri,1300,23.30€
il-cane,antonio-zizzo,2013,5.50€

titolo,autore,anni,prezzo

ora dovrei ordinare dalla A-Z i vari titoli, il mio problema è che non saprei come prendere il titolo da file e metterlo in una variabile in modo da poter ordinarli in ordine alfabetico.
L'algoritmo di Swap tra vettori di char l'ho fatto e funziona, devo solo implementarci un algoritmo di ordinamento che sceglierò, mi manca solo l'inserimento dei dati del file in delle variabili!!!!

Qualsiasi suggerimento anche sulle modalità di composizione del file sono accettate!!!
Grazie a tutti!!!

3 Risposte

  • Re: Modifica FILE in C

    Io proverei a leggere riga per riga il file testo e fare qualcosa del genere, ovvero spezzare la stringa fino alla prima virgola che separa le varie componenti ( titolo, autore etc) e poi salvarla in un'altra stringa...
    Qualcosa del genere dovrebbe andare:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
    FILE *file;
    char *res,title[402],*token,buf[402];
    file=fopen("/home/sergio/prova","r");
    if(file==NULL)
        {
        printf("Errore apertura del file!");
        exit(1);
        }
    while(1)
        {
        res=fgets(buf, 400, file);
        if(res==NULL)
            break;
        buf[strlen(buf)-1]='\0';
        while (token != '\0')
            {
            token = strtok(buf,",");
            strcpy(title,token);
            break;
            }
        printf("%s\n",title);
        }
    return 0;
    }
  • Re: Modifica FILE in C

    Grazie mille
  • Re: Modifica FILE in C

    Dovendo ordinare il file.. e' inutile e dannoso spezzare la stringa...
    tanto se parti da sx per ordinare stai ordinando comunque per titolo...

    il vantaggio di ordinare senza spezzare le stringhe lette dal file.. e' che una volta ordinato il vettore, partendo da 0 e scrivendo nel file, si ottiene il file ordinato per titolo.
Devi accedere o registrarti per scrivere nel forum
3 risposte