分类：电脑/网络-程序设计-C/C++
问题：如何让这个程序在输入非整形数据之后不进入无穷循环状态？#incl? 
如何让这个在输入非整形数据之后不进入无穷循环状态？#include "stdio.h"main(){int a, d;srand(time());d=rand()%100;scanf("%d", &a);if(a==d){printf("^_^");}else{  do {  printf("*_*");  scanf("%d", &a);  if(a==d){printf("^_^");}  else{  if(a<d) {printf("%d<x", a);} 如何让这个在输入非整形数据之后不进入无穷循环状态？#include "stdio.h"main(){int a, d;srand(time());d=rand()%100;scanf("%d", &a);if(a==d){printf("^_^");}else{  do {  printf("*_*");  scanf("%d", &a);  if(a==d){printf("^_^");}  else{  if(a<d) {printf("%d<x", a);}  else{printf("x<%d", a);}}}while(a!=d);}getch();}
回答：这个问题其实不难，只要对scanf的返回值做一个判断并进行处理即可。下面的代码，请参考：#include "stdio.h" main() { int a, d,ret;srand(time()); d=rand()%100; ret = scanf("%d", &a);if(ret == 0)  { printf("Input Error!\n"); getch(); exit(0);}if(a==d){printf("^_^");}else { do { printf("*_*"); ret = scanf("%d", &a);if(ret == 0)  { printf("Input Error!\n"); getch(); exit(0);}if(a==d){printf("^_^");}else{ if(a<d) {printf("%d<x", a);} else{printf("x<%d", a);}} } while(a!=d); } getch(); }