在屏幕中输入一串字符,然后按回车,所有内容会读入缓存区中,等待程序处理
这个机制方便一次性输入后续需要输入的机制,但也造成了一些不便
清空缓存区数据有多种方法
记下种
1.fflush(stdin)
优点:简单方便快捷
缺点:只有部分编译器支持:windows的vc支持,Codeblocks支持,其他未知
2.setbuf(stdin,NULL)
优点:简单方便快捷,而且几乎所有编译器都支持
缺点:机理是将缓存输入区重新定位到新区域,所以会造成内存浪费(好像是512bytes吧)
3.scanf( "%*[^\n]" );scanf( "%*c" );
*号是赋值屏蔽符,直接丢弃掉读入的这个字符.所以是读入非回车符,然后在读入回车符.
优点:所有编译器都支持,不会造成内存浪费,推荐
4.while((c = getchar()) != '\n');
跟上面差不多吧
优点:简单暴力