scanf doesn't work for variables of type double

Noah Friedman pmaniac at walt.cc.utexas.edu
Wed Sep 20 06:45:46 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

>  double vec[V];
>  int i;
>  for (i=0;i<V;i++)
>    scanf("%f ",&vec[i]);

I tried your program on a Sun2/50 (running UNIX system V) and got the
same results. I know from past experience that the same thing happens
on my IBM PC (using Turbo-C, which is supports ANSI C). 

My suggestion is to use "%lf" and don't worry about it. 

Noah Friedman
pmaniac at walt.cc.utexas.edu



More information about the Comp.lang.c mailing list