非常简单的C程序,为什么我得到这样的输出?

Extremly simple C program,why I am getting output like this?

代码:

#include <stdio.h>
int main()
{
  long cn=1;
  char ch;
  while((ch=getchar())!=EOF)
  {
    printf("%ld\t%c\n",cn++,ch);
  } 
}

当我输入单词 "secret" 并按回车键时,它显示的计数是 7 而不是 6,为什么?

因为 "enter" 字符也被读取。这实际上是一个 "newline",ASCII 码 10(或十六进制 0A)。