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

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

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

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

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

查看更多 ->


2018.03.13 | C与C++ | 4810 浏览 | 2 赞 | 1 条评论

1、gets在scanf前调用,这种调用一般不会出现什么问题,可以正常输入。

2、scanf在gets前调用,这种情况就会出现问题,当输入完scanf中的变量时,运行到gets函数,则不让输入任何字符

出现此问题的原因是gets函数接收了scanf输入完后的回车符,解决的办法是在scanf和gets中间,用getchar函数接收掉回车符,这样就不会出现任何问题了。

查看更多 ->


2018.02.24 | 零零碎碎 | 9046 浏览 | 0 赞 | 3 条评论

输入法,一个说小不小,说大也不大的东西。往小了说,这不是一个很大的市场,愿意折腾输入法的人也只是千里挑一;然而往大了说,这又是一个与我们的电脑与手机朝夕相伴的不可缺少的软件,其质量与效率直接关系到我们使用电脑和手机的体验与效率。于是本着折腾的原则,自己也试着对一些常见的输入法进行了一些个人的测评。

查看更多 ->



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