初学C语言的时候,在scanf(”%d\n“)中加入了回车符'\n',回车无法结束输入。
缓冲区
输入设备->缓冲区->程序(大概)
scanf()的读取原理
1.scanf()读数据碰到空白符就停止输入。
2.scanf()忽略缓冲区中先导的空白符。
3.当参数为%c的时候,返回缓冲区中第一个字符,包括空白符。
也就是说,在这行代码"scanf("%d\n");中要让缓冲区读两次,才能停止scanf();,第一次缓冲区读入%d后碰到回车,程序停止等待读入\n,由于忽略先导的空白符,程序一直在等待,直到遇到一个非空白符才继续读入。