[RISOLTO] Problema con getchar

di il
3 risposte

[RISOLTO] Problema con getchar

Salve ho un piccolo problema con questo pezzo di codice:
qualcuno sa spiegarmi perchè questo while mi cicla all'infinito? se non è così...perchè non stampa? grazie in anticipo a chiunque abbia voglia di aiutarmi

#include <stdio.h>

int main(int argc, const char * argv[]) {


int nl = 0;
int ns = 0;
int nt = 0;
int c = 0;


while ((c = getchar()) != EOF){
if (c == ' ') {
ns++;
}
if (c == '\t') {
nt++;
}
if (c == '\n') {
nl++;
}

}

printf("%d %d %d", ns, nt, nl);

return 0;
}

3 Risposte

  • Re: [RISOLTO] Problema con getchar

    In realtà non cicla all'infinito ma di chiede di inserire un nuovo carattere.

    Il tuo carattere finale dovrebbe essere proprio '\n', visto che stai leggendo da tastiera.

    Se poi l'intento è di leggere da file fino a EOF allora dovresti utilizzare la fgetc.

    P.s. Usa il tag code per indentare il codice per favore
  • Re: [RISOLTO] Problema con getchar

    Veramente potresti usare l'EOF da tastiera con Ctrl-Z
  • Re: [RISOLTO] Problema con getchar

    oregon ha scritto:


    Veramente potresti usare l'EOF da tastiera con Ctrl-Z
    Hai ragione, Ctrl-Z funziona per i sistemi windows; se invece siamo sotto linux il comando per EOF è Ctrl-D
Devi accedere o registrarti per scrivere nel forum
3 risposte