本文共 314 字,大约阅读时间需要 1 分钟。
今天写到这样一个函数
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)已测试可用。
转载地址:http://nvuws.baihongyu.com/