c语言入门:编程练习

#include <stdio.h>
int main(void)
{
    char ch;
    int a;
    a=0;
    
    while((ch=getchar())!='#')
    {
        a++;
        printf(" %7c-%d ",ch,ch);
        if(a%8==0)
        printf("\n");
    }
    
    return 0;
}

这串代码为什么我按个enter直接就输出了?不应该换行吗,#也没打

#include <stdio.h>
int main(void)
{
char ch;
int a;
a=0;
getchar();是不是要写一个getchar()
while((ch=getchar())!='#')
{
a++;
printf(" %7c-%d ",ch,ch);
if(a%8==0)
printf("\n");
}
return 0;
}

ch=getchar() 也会接收换行符,因为你Enter 就是一个 \n 换行符