开发者社区> 问答> 正文

在循环中为什么cin有时会失效:报错

int i;
for(;;)
{
    i = 10;
    cin >> i;
    swith(i){...}
}

在第一次之后cin不等待用户输入...

我问老师说是10正好是回车的ascii码,所以cin相当直接读取到了回车...

但是,为什么啊?我没想明白







展开
收起
kun坤 2020-06-07 22:15:07 651 0
1 条回答
写回答
取消 提交回答
  • Windows和Linux下测试都没有出现你说的这种情况。

    都会在cin处block住,等待输入。


    输入非int的值都会让你的cin>>i不能完成工作,直接返回,下次,cin看到i还是非int,又直接返回,根本不给你机会输入来更新i值。 另外,这个问题,随便搜索一下就找到很多解答了,这里有完整解答:http://www.cnblogs.com/pianoid/archive/2011/05/03/2035656.html。

    ######

    引用来自“Jiango”的评论

    Windows和Linux下测试都没有出现你说的这种情况。

    都会在cin处block住,等待输入。

    现在不方便,明天你能不能帮我看看,,,,######

    引用来自“Jiango”的评论

    Windows和Linux下测试都没有出现你说的这种情况。

    都会在cin处block住,等待输入。

    那个错误是前几天的,做了一趟火车,忘了具体是在哪里

    今天我重新编译了一下发现正常输入是对的,但是我为了找到问题,我输入"/"后.....cin就出现我上面说的情况了,但是我确定我前几天只是正常输入也会那样,让我再试试看,但是为什么输入/会不停下呢?

    ######回复 @Jiango : 谢谢######不是/,其它不是int的值都会让你的cin>>i不能完成工作,直接返回,下次,cin看到i还是非int,又直接返回,根本不给你机会输入来更新i值。 另外,这个问题,随便搜索一下就找到很多解答了。
    2020-06-07 22:15:13
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载