在屏幕中输入一串字符,然后按回车,所有内容会读入缓存区中,等待程序处理

这个机制方便一次性输入后续需要输入的机制,但也造成了一些不便

清空缓存区数据有多种方法

记下种

1.fflush(stdin)

优点:简单方便快捷

缺点:只有部分编译器支持:windows的vc支持,Codeblocks支持,其他未知

2.setbuf(stdin,NULL)

优点:简单方便快捷,而且几乎所有编译器都支持

缺点:机理是将缓存输入区重新定位到新区域,所以会造成内存浪费(好像是512bytes吧)

3.scanf( "%*[^\n]" );scanf( "%*c" );


*号是赋值屏蔽符,直接丢弃掉读入的这个字符.所以是读入非回车符,然后在读入回车符.

优点:所有编译器都支持,不会造成内存浪费,推荐

4.while((c = getchar()) != '\n');

跟上面差不多吧

优点:简单暴力

 posted on 2013-10-17 15:48  someblue  阅读(423)  评论(0编辑  收藏  举报