读书人

c++输入的有关问题

发布时间: 2012-03-13 11:21:12 作者: rapoo

c++输入的问题
以下代码是我随手写出来的
想要问的是,当我输入字符时,程序就会死循环,原因是什么?如何解决(不用字符处理)?
#include <iostream>
using namespace std;

int main(void)
{
int s=0, n=1;
while (n> 0)
{
cout < < "Please input n: ";
cin> > n;
s += n;
}
s -= n;
cout < <s < <endl;
return 0;
}


[解决办法]
cin> > n;
================
这是cin的一种处理方式,当输入被判定为异常时,cin操作的一个标识为置为true,从此所有的cin操作都会被忽略,因为就进入死循环了...

换成scanf( "%d ",&n);操作时,也要进行 fflush(n)操作才不会死循环,否则也进入死循环...
[解决办法]
可以做个小测试:
=======================================
#include <iostream>
using namespace std;

int main()
{
int a;
for(int i=0; i < 10; i++)
{
cout < < "input a = ";
cin > > a;
}

int b;
for (int j=0; j < 10; j++ )
{
cout < < "input b = ";
scanf( "%d ",&b);
fflush(stdin); //清除输入缓存
    
}
return 1;
}

读书人网 >C++

热点推荐