输入时可能经常遇到输入内容超出预计,导致下面的输入出现问题。怎么处理这种错误呢,我们先来了解下io的几种状态
1
表示肯定,
0
表示否定,再结合标记位的名称,即可得出标记位当前状态的含义。
bool
fail();
bool
eof();
bool
bad();
bool
good();
只有当good()值为1的时候才能进行正常的输入。
bool
fail();
bool
eof();
bool
bad();
任一状态为1都将导致输入失败。
由此我们可以使用clear()函数清空状态、
然后对缓冲区进行清理,
setbuf(stdin,NULL);
cin.sync();
fflush(stdin);
cin.sync();
fflush(stdin);
这三种方法都是可以实现的。
使用clear()函数结合这三个中的任一个,都可以实现。
转载于:https://blog.51cto.com/jun0213/1062869