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

#include

main()

{

int i;

while(i!=-1)

{

cout<<"i="

cin>>i;

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

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

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