次のコードがあります。
int main(void)
{
double r;
scanf("lf",&r);
printf("%lf\n",r);
}
入力した値はどれも、約 40 ~ 50 桁の意味のない数字を返します。scanf は、文字、整数、文字列などで正常に動作しますが、double ではこの問題が発生します。誰でも私を助けることができますか?
書式文字列にパーセント ( %) 記号がありません。次のようにする必要があります。
scanf("%lf", &r);
次に、戻り値のチェックを追加する必要があります。これは、先ほど学んだように、I/O は脆弱で失敗する可能性があるためです。rしたがって、スキャンが機能していることを確認していない限り、有効な値が含まれていることに依存するのは間違っています。
if(scanf("%lf", &r) == 1)
{
print("got the double %g\n", r);
}
else
{
printf("**Failed to read a double value!\n");
}
scanf("lf",&r);
する必要があります
scanf("%lf",&r);
%lf読み込むときに必要です。
試す
scanf("%lf",&r);
を入れるのを忘れていました%。
%あなたは前に忘れましたlf:
scanf("%lf", &yourDouble);