请详细解读下面程序,该怎么处理

请详细解读下面程序
#include <atdio.h>
mian()
{
char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%c\n",c5,c6);
}

输入123<回车>
  45678<回车>

输出结果是?

------解决方案--------------------
探讨
输入的123分别赋值给了c1、c2、c3,第一个回车赋值给了c5,c6得到值4

------解决方案--------------------
探讨

能说的详细些吗?