【C语⾔】清空输⼊缓存区的⼏个⽅法
办法⼀:
1 scanf("%d", value);
2 setbuf(stdin, NULL);
将 stdin 输⼊流由默认缓冲区转为⽆缓冲区。这样 scanf() 输⼊完毕后,缓冲区内的东西就消失了。
办法⼆:
1while ((c = getchar()) != EOF && c != '\n');
使⽤ getchar() 不断获得缓冲区内的内容,直到缓冲区空为⽌。建议使⽤这种⽅法。
办法三:
1 fflush(stdin);
记住我这种⽅法不在 C 和 C++ 标准定义⾥,并⾮所有编译器都⽀持这个函数(例如Linux下的GCC就不⽀持),所以代码的可扩展性较差。