想用ubuntu开发android程序,但是ADT始终安装不成功

int main ()
{
long i;
while(!scanf("%ld",&i)){
printf("i=%ld",i);
}
return 0;


我想要输入一个长整形,但当错误输入一个英文字符时便出死循环输出。为什么会这样?那么该如何防止错误的类型输入?

作者: xxdsan   发布时间: 2011-06-12

在printf后加
代码:
while((int c=getchar())!='\n' && c!=EOF)
            ;

原因是scanf从stdin读取输入流到数据缓冲区,如果格式不符,scanf不会清空缓冲区,所以下次读入的输入流还是原来的那些东西

作者: 灰色小狼   发布时间: 2011-06-12