[RISOLTO] Problema con getchar

di Anonimizzato15402 il
3 risposte
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

  • 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
  • Veramente potresti usare l'EOF da tastiera con Ctrl-Z
  • 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