首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++输入的有关问题

2012-03-13 
c++输入的问题以下代码是我随手写出来的想要问的是,当我输入字符时,程序就会死循环,原因是什么?如何解决(

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;
}

热点排行