在使用cin输入时,有时需要使用异常的输入来结束cin的执行。
比如在一个数字输入的结尾处用一个字符作为结尾输入。
但是当涉及到多次的输入时,重新整理输入缓冲区就成为了必须要做的工作。
常用的循环输入语句:
while(!cin.fail())
{
    //执行语句

输入失败后,将会导致failbit被置为1。因此导致 循环终止。
但是如果需要再次输入int数据,就需要清除failbit位并清空缓冲区。
用一下两条语句执行:
    cin.clear();
    cin.sync(); 
这样缓冲区就被清理干净,并可以正常等待输入。
而且需要注意的是,在我测试过程中发现,如果failbit被置位,将导致后面的cin语句无法执行。
另外需要注意的是,由于在char类型变量和int类型变量存在隐式转换,所以cin可以在要求出入int时读取char数据。
但后果是int类型变量乱码,且failbit被置位。

相关文章:

  • 2021-08-04
  • 2021-06-12
  • 2020-05-08
  • 2022-01-12
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2022-12-23
  • 2021-10-17
  • 2021-06-09
  • 2021-12-10
  • 2022-01-10
  • 2021-07-29
  • 2021-09-11
相关资源
相似解决方案