Skip Navigation

Any way NOT to display the input of getchar() TWICE?

Goal: a program that takes a char as input and outputs which char has been inputted and the humber of line(s). The below code makes the program output the inputted char twice: once - I assume - as a result of how getchar() works and once as a result of printf(). Is there any way to do this more elegantly, as in, not displaying the inputted char twice? If possible, keep to while, without suggesting for.

PS: the repetition of getchar() is just my ugly way of removing the trailing '\n'.

   
    
#include <stdio.h>  

int main(void)  
{  
        int c, nl;  
        c = 0;  
        nl = 0;  

        while ((c = getchar()) != EOF) {  
                getchar();  
                printf("%c, %d\n", c, nl);  
                ++nl;  
        }  
}  

  

Comments

2