さて、gcc についてのコメントから、C をプログラミングしていると思います。しかし、質問に入ると、 を使用している場合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であるかどうかを確認する必要があります。そうであれば、邪魔になるが読み取られないランダムな文字にもかかわらず、すべてが正常に機能しました。
あるいは、整数型 (および類似の型) について言えば、 が提供する関数ctype.hを使用できます。