int a; 
while(cin >> a)
{   }char c;
while(cin >> c)
{   }这两段代码有什么区别?后一个没什么问题。
可是
前一个输入一个非整数字符while就结束了,但是如果后面程序还有要用cin 的,它就跳过不做了大家帮忙解释一下,小弟谢先。

解决方案 »

  1.   

    cin >> a 返回cin
    cin  可以进行BOOL判断. 如果cin发生了错误,那么 cin 为 false, 循环结束.
    第一个cin是读整数,如果输入了非数字字符,则cin的状态就会变为出错, 返回 false. while  就结束了而第二个循环是读字符, 没有这个问题, 它可是以接受所有输入的字符,永远都不会出错
      

  2.   

    楼上正解//char  -128 - 127     
    //int   -32768 - 32767 
      

  3.   

    但是  像这样写  int a; 
                    while(cin >> a)
                    {   }
                    int b;
                    cin >> b;先输入一字符结束while ,但是 cin >> b;就根本不会再执行了
    这是什么原因?跟cin返回false 有关吗?
      

  4.   

    cin 返回错误了, 不能再读了。 应该先将错误清除
      

  5.   

    http://search.csdn.net/Expert/topic/1757/1757167.xml?temp=.8363611