好的,所以我想在前言中说我对C知之甚少。我在高中独立学习,所以我来找你们帮忙。我正在服用C1而且我不知道那是#或++或只是C,甚至是那些之间的差异。无论如何我的问题是我如何确保用户输入整数而不是浮点数,或确保该人没有输入&符号进入浮点输入。
我在记事本中编码并将它们保存为.c文件,然后在命令提示符中输入它们,如果这样可以让您了解我正在使用的内容。
答案 0 :(得分:0)
答案 1 :(得分:0)
好吧,我想你是编程C,关于gcc的评论。但是进入问题,如果你使用的是scanf
,那么它几乎可以检查所有内容,你只需要知道如何使用它,例如:
int main(void)
{
float input;
if(scanf("%f", &input) == 1)
{
printf("OK, I could read your float: %f.\n", input);
}
else
{
printf("Not OK, I couldn't read your float.\n");
}
return 0;
}
如果我输入5.4654
,它将打印正确的数字。
如果我输入5.4&654
,它将打印5.4
,因为那里有一个浮点数,直到&
字符。
但是如果我输入abc
,它将失败,并且打印它无法读取你的浮动。
这可行的原因是因为scanf
返回读取的成功数据的数量。因此,如果您要求"%f %f %d"
,则必须检查返回值是否为3
,如果是,则一切都正常,尽管随机字符会阻碍但未被读取。
或者,谈论整数类型(和类似的),你可以使用functions provided by ctype.h
。