我想创建一个循环,它将继续读取值(此处为整数),直到输入非整数。 例如,这是我写的代码
while(true)
{
scanf("%d",&w);
if (w==100) break;
else fwrite(&w,sizeof(int),1,f);
}
只有那里的测试是让用户输入数字100.但是我搜索的是一种函数或某种方式来测试它是否是整数或者将使用输入的值检测错误的一个。 isdigit()
似乎没有把这个技巧拉到这里。
有什么想法吗?
答案 0 :(得分:2)
您可以查看返回值表单scanf
if (scanf("%d", &w)) != 1) {
/* error, input doesn't match. */
}
或者你可以抛弃scanf
,只读一个fgets
的字符串。然后你可以走绳子并做isdigit
并决定你是否喜欢这个输入。