c语言如何排除用户输入的是非数字问题

float t;
print("请输入一个数字:");
scanf("%f",&t);
while (t<=0‖t>100)
{
print("输入范围错误或输入的是非数字,请重新输入");
scanf("%f",&t);
}

大家好,用户输入的是字符串(非数字)就会出错,如何在whine()添加循环条件,用户输入的t是非数字则继续循环,直到输入的是数字再结束循环,或者在while()添加if可实现的方法。

下面的方法还是有问题
img
判断仅能输入float浮点数,不能输入其他类型,
1英文判断正确;
2汉字判断正确;
3纯符号判断正确;
4数字+符号判断错误,
数字+英文判断错误,
数字+汉子判断错误,

isdigit
http://c.biancheng.net/c/isdigit.html http://c.biancheng.net/c/isdigit.html

while(isdigit(t)==0)