#关于scnaf一些特殊情况
scanf在读取时,遇到空格,tab,换行符会停止读取(输入的东西都放在缓冲区,再读取),此时scanf只会读取前面的数据,,所以,缓冲区就剩下空格后面的内容.(如果缓冲区里有内容,用scanf或者getchar就直接读取时,不用你在键盘上重新输入)
我们可以改变scanf的一些参数来让scanf获取全部内容: scanf("%[^\n]",arr);
在获取完全部内容后,缓冲区里就剩下一个回车符,所以需要用getchar()来清除缓冲区.
用法如下:
scanf("%d",arr);
getchar();//此时不用输入,因为缓冲区里有一个字符(回车)
一般scanf和getchar是搭配使用的.