Cerca l' errore

di il
27 risposte

Cerca l' errore

Buongiorno, ho problemi con questo programma perchè non visualizza niente

#include <stdio.h>

#define IN 1   //all' interno della parola
#define OUT 0   //all' esterno della parola

//conta il numero di righe, parole e caratteri del testo in ingresso
main()
{
	int c, nl, nw, nc, state;

	state = OUT;   
	nl = nw = nc = 0;
	while ((c = getchar()) != EOF) {

		if (c != ' ' && c != '\n' && c != '\t') 
			++nc;

		if (c == '\n') 
			++nl;

		if (c == ' ' || c == '\n' || c == '\t')
			state = OUT;
		
		else if (state == OUT) {
			state = IN;
			++nw;
		}
	}
	printf("Righe:%d Parole:%d Caratteri:%d\n", nl, nw, nc);
}

27 Risposte

  • Re: Cerca l' errore

    Inutile riproporre gli stessi problemi in thread diversi.
    Non vedi nulla perché la print è fuori dal ciclo. Solo dopo l'EOF uscirà dal ciclo, lo hai scritto tu o no??
  • Re: Cerca l' errore

    L' ho copiato dal mio libro di linguaggio C
  • Re: Cerca l' errore

    Quindi è un errore? Printf dove deve stare ?
  • Re: Cerca l' errore

    L' ho riproposto perchè è un programma stampato su un libro importante e mi sembra strano che non funziona, non è che io scrivo senza pensare e pubblico a caso il codice
  • Re: Cerca l' errore

    E poi il problema qua è completamente diverso dato che non è da mettere alla prova ma da correggere
  • Re: Cerca l' errore

    Non c'è niente da correggere e nessun errore. Dopo che usi il tasto per EOF hai il risultato
  • Re: Cerca l' errore

    Dopo che usi il tasto per EOF hai il risultato--> cosa vuol dire?
  • Re: Cerca l' errore

    Come faccio a usare il tasto per EOF?
  • Re: Cerca l' errore

    Su win è Ctrlz
  • Re: Cerca l' errore

    E win invece cosa sarebbe per curiosità?
  • Re: Cerca l' errore

    Ok grazie, ma non ci sarebbe un modo più "normale" per visualizzare il risultato ? Vorrei visualizzare quel risultato senza l' utilizzo di Ctrlz. è possibile farlo secondo te in qualche modo?
  • Re: Cerca l' errore

    Ma Ctrlz come fa a visualizzare il risultato?
  • Re: Cerca l' errore

    Il ctrlz fornisce il valore eof alla getchar e il ciclo termina. Ovviamente se cambi la condizione del ciclo cambua il tasto con cui termina il ciclo.

    Ma che domande fai? Tu studi il c?
  • Re: Cerca l' errore

    Si ma sta cosa del tasto non me l' ha mai spiegata nessuno e non l' ho neppure vista da nessuna parte. Io il C l'ho fatto 1 anno in prima e basta e manco il prof mi ha spiegato Ctrlz, forse è una cosa un po' avanzata e tu dai per scontato che io sia già esperto
Devi accedere o registrarti per scrivere nel forum
27 risposte