2018.04.06 | C与C++ | 4694 浏览 | 0 赞 | 0 条评论

C++在用cin做输入的时候,尤其是需要输入int型值的时候,往往需要做验证与处理。而对于异常值,则需要先清理缓冲区,再准备下一次输入。

对于清理缓冲区,中文世界的方法有一下几种(或者混着用):

cin.clear();
cin.ignore();
cin.sync();
fflush(stdin);

但是这几种方法都各有各的缺点,不是会造成重复输出错误信息,就是会造成不断的死循环。真正理想的解决方案,StackOverflow上给了很好的解答。那就是混合使用cin.ignore(INT_MAX, 'n')和cin.clear().

查看更多 ->


🤔关于我
翠翠 idealclover
Product Manager @ByteDance
南京大学 2016 级本科生
了解更多
🏠关于博客
基于 Typecho 博客框架
使用个人的 clover clover 主题