2 qypqss qypqss 于 2013.10.01 19:45 提问

关于C++输入cin的问题,下面的程序,如果输入一个字符,那就将陷入死循环,为什么?

#include

main()

{

int i;

while(i!=-1)

{

cout<<"i="

cin>>i;

cout< }
}
上面的程序,如果输入的不合法,比如输入一个字符,那就将陷入死循环。解决的办法 有个一,把cin>>i;语句移到判断循环的语句,那么输入的如果是不合法的变量,他将跳出循环 。

2个回答

u010814878
u010814878   2013.10.07 15:48

是不是将i转化为对应的ASCII码值了?

u012101920
u012101920   2013.10.07 21:52

比如输入一个char型的进去,然后判断“i!=-1”,这时会把char型强制转换成int型,就是你输入char的ASCII码,ASCII码是没有-1这种东西的,所以永远不等于,死循环。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!