关于缓冲区(buffer)
缓冲区里保留所有从键盘打入的键,包括空格,空白键,回车。
当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符\n,这个换行符\n也会被存储在缓冲区中并且被当成一个字符来计算。
e.g. 我们在键盘上敲下了123456这个字符串,然后敲一下回车键(\r)将这个字符串送入了缓冲区中,那么此时缓冲区中的字节个数是7 ,而不是6。
一些函数
- gets( )
读一行字符串,包括前后中间的 空格,空白,....
- scanf(“%d”,&k)和 scanf(“%d\n”,&k)
后者可以吃掉一个 Enter 键
- getchar( )
从缓冲区读走一个字符,相当于清除缓冲区
- fflush(stdin);
清除输入缓冲区
so you can do like this : scanf(…); fflush(stdin); or getchar( ) 再 gets( );