关于scanf与换行符的问题

scanf在读取字符串时,会自动忽略换行符,所以

char ch,a[10],b[10]; scanf("%s",a); scanf("%s",b); printf("%s",a); printf("%s",b);

当输入abc回车def时,输出abcdef
但是换行符还是留在缓冲区中,所以我们在scanf后面应该加上一行
getchar();

来去掉残留的换行符
【关于scanf与换行符的问题】特别地: scanf(“%c”,&a) 会读取换行符
一般情况下,我们不需要每次都加上getchar,因为scanf只读取对应的类型,但是如果后面的程序中出现要读取字符时,就一定要加上getchar把缓冲区中的回车符去除。

    推荐阅读