请教C高手,有关容错的处理

来源:百度知道 编辑:UC知道 时间:2024/05/25 14:38:18
do {
printf(\"\\n School No.:\");
scanf(\"%d\",&ptrThis->schoolNum);
if (ptrThis->schoolNum<=0||ptrThis->schoolNum>g_school.nTotalNmOfSch) {
printf(\"\\n The number must between 1 and %d\",g_school.nTotalNmOfSch);
err=0;
}
else
{
err=1;
}
} while(err==0);

程序执行时提示输入学校的编号,应输入整型,如果输入的是字符型或字符串,则出现死循环。请问如何解决。
你好!我不太明白,你能不能帮我修改一下。

可以在循环前用isdigit检查输入的字符是否为阿拉伯数字
isdigit的用法在这里可以找到
http://man.chinaunix.net/develop/c&c++/linux_c/default.htm

清屏的话调用系统命令就可以了
system("clear");