Leggere una parola singola da una riga di un file!

di il
15 risposte

15 Risposte - Pagina 2

  • Re: Leggere una parola singola da una riga di un file!

    29/07/2023 - Vincenzo.79 ha scritto:


    27/07/2023 - oregon ha scritto:


    Metti un contatore nel ciclo while della feof e un altro contatore nel ciclo while del token (che si azzera all'entrata) e falli visualizzare 

    Ho provato a risolvere il problema in maniera più semplice, nel senso che le righe ed il numero di parole, nal mio caso, non so variabili;

    pertanto credo che possa svolgere l'esercizio anche senza usare la funzione strtok.

    Il problema però è sempre lo stesso; cioè dovrei confrontare il numero di una parola per riga con il valore singolo inserito dall'utente (che poi è l'unica cosa che può cambiare), solo che non riesco a fare bene il contronto

    Posto solo la porzione di codice incriminata:

    for (n = 1; fscanf(f_in, "%s", words[n]) != EOF; n++) {
            for(i = 0; i <= DIM2; i++) {
                if(v[n] == v[i])
                    printf(" words[%d] = %s\n", n, words[n]);
            }
        }

    Attento che fscanf si ferma allo spazio così come al ritorno a capo. Temo che la sola soluzione siano i due contatori che ti sono stati suggeriti.

    Scrivo in italiano

    Finché (il file non è ancora finito E il contatore delle righe non è ancora al punto giusto)
    {
    Leggo una riga
    Faccio salire di 1 il contatore righe
    }
    //Ora O ho finito il file, O sono alla riga giusta
    se(il file è finito)
    {
    Fallimento, e fine funzione
    }
    Leggo una riga
    //Bene, ora la parola che mi serve può essere solo qui
    Bel ciclo for in I fino alla lunghezza effettiva della riga
    {
    Se (l'i esimo carattere è uno spazio)
    Alzo di 1 il contatore delle parole
    Se il contatore è arrivato al numero giusto
    Stampo il carattere letto
    }
    Se il contatore non è al numero giusto
    {
    La riga era troppo corta
    }
Devi accedere o registrarti per scrivere nel forum
15 risposte