C++ Conteggio Parole

di Anonimizzato31893 il
25 risposte
Sto studiando da un testo e ho replicato il seguente programma:

#include <stdio.h>
#define IN 1
#define OUT 0

//Conta il numero di righe, parole e caratteri del testo in ingeresso.

int main() {

int c, nl, nw, nc, state;

state = OUT;
nl = nw = nc = 0;
while ((c=getchar()) != EOF){
nc++;
if(c == '\n')
nl++;
if(c==' ' || c =='\n' || c=='\t')
state = IN;
nw++;
}
printf("%d %d %d\n" , nl, nw, nc);
}


Adesso però non riesco a capire come fare a far lavorare questo Programma?
Devo aprire un terminale ma non so Input che si deve dare?

Quacuno potrebbe cortesemente aiutarmi?
Grazie.

25 Risposte

  • Compila il programma e lo esegue. Inserisci un testo con più parole e vedi se funziona...
  • oregon ha scritto:


    Compila il programma e lo esegue. Inserisci un testo con più parole e vedi se funziona...
    Chiedo scusa, ma cosa si intende per Compilare e come si inserisce un testo?

    Penso che per compilare in CLion basta selezionare l'Icona del Martello!

    Ma poi dove devo inserire il testo?
  • Ho CLion, sto studiando ed ho fatto una semplice domanda, ho quel link che mi hai inviato, ti ringrazio lo stesso, ma pensavo che mi avreste dato una semplice risposta!

    Da quel link che mi hai inviato, non si evince la risposta al mio problema!

    Potresti cortesemente dirmi come fare la verifica della funzionalità del programma?
  • Ho compilato il prog. :

    ====================[ Build | Conteggio_Parole_1 | Debug ]======================
    /snap/clion/180/bin/cmake/linux/bin/cmake --build /home/antonio/Scrivania/FIle_C_Testo/Conteggio_Parole_1/cmake-build-debug --target Conteggio_Parole_1
    ninja: no work to do.

    Build finished
  • Non ho Warning, quindi significa che il programma funziona correttamente.....

    Adesso se voglio contare una parola, esempio, voglio contare la seguente parola:

    Supercalifragilistichespiralitoso

    Come faccio a contarla?
  • Hai scelto un esercizio un po' del cavolo. Se vuoi analizzare un testo fallo da file. Se lo vuoi fare da terminale, rinuncia a contare le righe ed esci dal ciclo quando arriva il newline e non l'end of file, che non arriva a meno che non sia supportato da qualche shortcut
  • Weierstrass ha scritto:


    Se vuoi analizzare un testo fallo da file.
    Ti ringrazio per avermi risposto!
    Posso chiederti per favore come posso analizzarlo da file?

    Come si fa?

    P.S. Ti ringrazio anticipatamente!
  • Non è descritto nel libro che stai studiando?

    Per il momento metti
    
    while ((c=getchar()) != '#'){
    
    E premi cancelletto e poi invio quando hai finito
  • Ho inserito il '#' al posto di EOF!

    Adesso cosa faccio?
  • Ecco il programma adesso come è:

    #include <stdio.h>
    #define IN 1
    #define OUT 0

    //Conta il numero di righe, parole e caratteri del testo in ingeresso.

    int main() {

    int c, nl, nw, nc, state;

    state = OUT;
    nl = nw = nc = 0;
    while ((c=getchar()) != '#'){
    nc++;
    if(c == '\n')
    nl++;
    if(c==' ' || c =='\n' || c=='\t')
    state = IN;
    nw++;
    }
    printf("%d %d %d\n" , nl, nw, nc);

    }
  • Ma non ce l'hai il terminale?

    https://onlinegdb.com/2rjq29BX

    Premi su Run, scrivi sul riquadro nero del terminale e alla fine premi cancelletto e invio
  • Weierstrass ha scritto:



    Premi su Run, scrivi sul riquadro nero del terminale e alla fine premi cancelletto e invio

    Fatto e sembra che mi da lo stesso risultato di quel programma Online che mi hai inviato....
    Allegati:
    31893_5df930183298c6ea0ce0e92270deec95.jpg
    31893_5df930183298c6ea0ce0e92270deec95.jpg
  • Bene
Devi accedere o registrarti per scrivere nel forum
25 risposte