Leggere un file di testo contenente una parola su ogni riga.

di il
5 risposte

Leggere un file di testo contenente una parola su ogni riga.

Si scriva una applicazione che esegua le seguent operazioni:

Legge un file di testo contenente una parola su ogni riga. Le parole non contengono spazi e la lunghezza massima di ogni parola e’ di 32 caratteri. Il nome del file deve essere fornito da linea di comando. L’applicazione dovra’ leggere tutto il file prima di procedere con le operazioni successive.
 
 int main (int arg c, char* argv[ ]){ 
 
 
 }
 
 


Si deve iniziare in questo modo, vero?

5 Risposte

  • Re: Leggere un file di testo contenente una parola su ogni riga.

    MT09_full ha scritto:


    Si deve iniziare in questo modo, vero?
    Hai provato?
    Se sì, funziona?
    Se non funziona, hai cercato in giro possibili alternative?
    Se sì, le hai provate a mettere in campo?

    Hai un esercizio da fare e ti arresti con una domanda alla scrittura dello scheletro minimo per l'applicazione più semplice, senza documentarti.

    Puoi fare un passo in più, secondo me.
    Dici?
  • Re: Leggere un file di testo contenente una parola su ogni riga.

    Ecco la parte di codice che ho elaborato:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define LUNG_MAX 32
    
    
    int main(int argc, char* argv [])
    {
        File *fp;
        int i;
        char bufferlettura [LUNG_MAX],parola[LUNG_MAX];
    
        if(argc!=2)
        {
            printf("Errore numero di parametri\n");
            return 1;
        }
        if((fp=fopen(argv[1],"r"))==NULL)
        {
            printf("Errore apertura file");
            return 1;
        }
        printf("File aperto, ecco il suo contenuto\n");
        fgets(bufferlettura,32,fp);
    
        while(feof(fp))
        {
            printf(bufferlettura);
            fgets(bufferlettura,32,fp);
        }
        printf("Fine del file");
        fclose(fp);
    }


    Ma mi da degli errori e non so come risolverli!
    Vorrei capire, ma se voi potete darmi qualche dritta, ve ne sarei grato!

    Grazie.
  • Re: Leggere un file di testo contenente una parola su ogni riga.

    MT09_full ha scritto:


    Ecco la parte di codice che ho elaborato [...]
    Molto meglio.

    MT09_full ha scritto:


    Ma mi da degli errori e non so come risolverli!
    Già sai: non siamo utenti finali del programma o la nonna che dice della caldaia "non funziona".
    Riporta gli errori, senza costringere a prendere il tuo codice, copiarlo, incollarlo e lanciarlo per scovarli.
  • Re: Leggere un file di testo contenente una parola su ogni riga.

    Grazie Alka, ho risolto gli errori, mannaggia la miseria, ho sbagliato a digitare alcune parole nel codice, ecco qui, adesso non ci sono più errori, ma vorrei sapere se la parte di codice che ho pensato è corretta:
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define LUNG_MAX 32
    
    
    
    int main(int argc, char* argv [])
    {
        FILE *fp;
        int i;
        char bufferlettura [LUNG_MAX],parola[LUNG_MAX];
    
        if(argc!=2)
        {
            printf("Errore numero di parametri\n");
            return 1;
        }
        if((fp=fopen(argv[1],"r"))==NULL)
        {
            printf("Errore apertura file");
            return 1;
        }
        printf("File aperto, ecco il suo contenuto\n");
        fgets(bufferlettura,32,fp);
    
        while(feof(fp))
        {
            printf("bufferlettura");
            fgets(bufferlettura,32,fp);
        }
        printf("Fine del file");
        fclose(fp);
    }
     


    Cosa ne dici adesso?
    Ho elaborato in modo corretto il codice?
    Il mio codice soddisfa la domanda?
  • Re: Leggere un file di testo contenente una parola su ogni riga.

    MT09_full ha scritto:


    Cosa ne dici adesso?
    Ho elaborato in modo corretto il codice?
    Il mio codice soddisfa la domanda?
    Lo hai provato?
    Se sì, fa quello che dovrebbe?

    Se la risposta è "sì", allora hai già la risposta.
    Se la risposta è "no"... idem.
Devi accedere o registrarti per scrivere nel forum
5 risposte