天天看点

io_state 状态标志 缓冲区

输入时可能经常遇到输入内容超出预计,导致下面的输入出现问题。怎么处理这种错误呢,我们先来了解下io的几种状态

<b>1</b><b>表示肯定,</b><b>0</b><b>表示否定,再结合标记位的名称,即可得出标记位当前状态的含义。</b>

bool fail();

bool eof();

bool bad();          

bool good();

只有当good()值为1的时候才能进行正常的输入。

bool bad();

任一状态为1都将导致输入失败。

由此我们可以使用clear()函数清空状态、

然后对缓冲区进行清理,

setbuf(stdin,NULL);

    cin.sync();

     fflush(stdin);

这三种方法都是可以实现的。

使用clear()函数结合这三个中的任一个,都可以实现。