When I use this code, I can type into the command line and get back what I typed:
main() {
  int c;
  while ((c = getchar()) != EOF) {
    putchar(c);
  }
}
Output:
~/code/c $ ./a.out
one
one
two
two
But when I use this code, it only works when I pipe in data, not when I type data into the command line:
main() {
  int nc;
  nc = 0;
  while (getchar() != EOF) {
    nc++;
  }
  printf("%d\n", nc);
}
When I pipe data in from a text file:
~/code/c $ ./a.out < practice.txt
14
When I try to input data from the command line:
~/code/c $ ./a.out
one
two
three
What's going on?
 
     
     
    