while(~scanf("%d",&input)){}
这个循环的功能是:你输入一个int类型的数据,如果你输入其他类型的数据,那么条件就为真,继续循环,直到你输入正确类型的数据(int)
scanf("%d",&input) 输入正确 函数返回值为 1,失败 返回0 所以 你知道。
但是当你输错一次后,不要忘了清空下缓冲区,因为,他会一直读取错误的数据
while(~scanf("%d",&input)){
printf("input again\n");
scanf("%*[^\n]");
scanf("%*c");
}