私はCの初心者で、ここに私の問題があります。C++ では、この方法で不正な入力 (unsigned int ではない) を探します。
long double c;
cin >> c;
if (c == (unsigned int) c) {
cout<<"OK";
}
else
cout<<"NOT OK";
しかし、今Cを学んでいるとき、私は同じようにやろうとしていますが、うまくいきません:
long double c;
scanf("%lf", &c);
if (c == (unsigned int) c) {
printf("OK\n");
}
else
printf("NOT OK\n");
それを修正する方法について何かアドバイスはありますか?私の仕事は、scanf を使用し、文字列を使用せずにこれを行うことです。負数と浮動小数点数を入力したくありません。なぜこれが機能しないのですか?