scanf doesn't work for variables of type double

MARWK at levels.sait.edu.au MARWK at levels.sait.edu.au
Mon Sep 18 20:29:41 AEST 1989


In article <12988 at uhnix1.uh.edu>, jsmng at csune.cs.uh.edu writes:
> I used the following program trying to read in 5 numbers interactively.
> As a test, I typed in 1.0 1.0 1.0 1.0 1.0 as input but the output is
> about 0.47 (approximately I forget the exact value but it is far from 1).
> When I changed the type of vec[] to be float. Everything is fine.
> Does anyone have any experience with this? According to K&R, %f for
> double should be allowed in scanf. We are running SunOS 4.0.1 and
> I think our C compiler follows the K&R standards (as opposed to
> ANSI).
> 
> #include <stdio.h>
> #define V 5
> main()
> {
>   double vec[V];
>   int i;
>   for (i=0;i<V;i++)
>     scanf("%f ",&vec[i]);
>   for (i=0;i<V;i++)
>     printf("%f ",vec[i]);
> }

You must use: scanf("%lf", &var) for doubles (long floats).

Ray 



More information about the Comp.lang.c mailing list