Piccolo problemino col linguaggio C
Un saluto a tutti gli amici del forum.
Il mio è un problema piuttosto banale, ma essendo agli inizi basici del linguaggio C, volevo capirne qualcosa e spero possiate aiutarmi a comprendere questo piccolo frammento di codice.
dichiaro la variabile intera ch :
[inline]int ch;[/inline]
apro un ciclo while :
[inline]while((ch = getchar()) != EOF)printf("r");[/inline]
il programma è abbastanza semplice ed insignificante, ma ripeto, mi serve più che altro per capire.
inizializzo la variabile ch assegnandogli la funzione getchar, quindi l'utente digiterà qualunque cosa e la darà in pasto a getchar. Fino a che ch non sarà uguale ad EOF, ovvero fintanto che l'utente non uscirà dal programma, il flusso while stamperà a video la lettera 'r'. Qui sorge un problema, perché ogni qualvolta si digita un carattere la funzione print stamperà due 'r' e non una soltanto. Sapete dirmi il perché di questa cosa?
Grazie mille per tutte le risposte
Il mio è un problema piuttosto banale, ma essendo agli inizi basici del linguaggio C, volevo capirne qualcosa e spero possiate aiutarmi a comprendere questo piccolo frammento di codice.
dichiaro la variabile intera ch :
[inline]int ch;[/inline]
apro un ciclo while :
[inline]while((ch = getchar()) != EOF)printf("r");[/inline]
il programma è abbastanza semplice ed insignificante, ma ripeto, mi serve più che altro per capire.
inizializzo la variabile ch assegnandogli la funzione getchar, quindi l'utente digiterà qualunque cosa e la darà in pasto a getchar. Fino a che ch non sarà uguale ad EOF, ovvero fintanto che l'utente non uscirà dal programma, il flusso while stamperà a video la lettera 'r'. Qui sorge un problema, perché ogni qualvolta si digita un carattere la funzione print stamperà due 'r' e non una soltanto. Sapete dirmi il perché di questa cosa?
Grazie mille per tutte le risposte

Risposte
Immagino tu stia andando a capo dopo ogni carattere. Il carattere '\n' non viene ignorato da getchar().