今天写到这样一个函数
char c;
do{
c=getchar();
...
}while(c!='#');
结果输入abc#abc后再用getchar()不能获得正确的值。。。Baidu一下,原来getchar()采用了缓冲区,而getch()才是立即获取,所以要想再用getchar()获取正确的值必须先清空缓冲区,如果是windows操作系统,用fflush(stdin)函数或rewind(stdin)函数,包含在stdio.h头文件中,而在linux下,则使用setbuf(stdin,NULL)函数,同样是stdio.h头文件中。
注:fflush(stdin)已测试可用。