Bug reading floating point numbers in gcc 2.95.3-4

Richard Stanton stanton@haas.berkeley.edu
Sat May 19 12:56:00 GMT 2001


The fscanf function in gcc 2.95.3-4 seems to ignore the decimal point in
floating point input fields. For example, create a file containing just the
following two numbers, say test.prn:

   26.28       2.34

Now compile and run the following program (testread.c):

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char fileName[] = "test.prn";
double input1, input2;

int main(int argc, char *argv[])
{

    FILE *fpin0;

    if (((fpin0 = fopen(fileName, "r")) != NULL) &&
        (fscanf(fpin0, "%lf %lf", &input1, &input2) == 2)) {
        printf("Input line = %15.7f %15.7f\n", input1, input2);
    } else printf("Error\n");
    return 0;
}

and this is what happens:

c:\projects\leases>gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/specs
gcc version 2.95.3-4 (cygwin special)

c:\projects\leases>gcc -o testread testread.c

c:\projects\leases>testread
Input line =    2628.0000000     234.0000000

The numbers were read as if they had no decimal points in them. This doesn't
help with the execution of my code...

Is there something wrong with my gcc setup, did I make an error in my code,
or is this a bug?

Thanks.

Richard Stanton


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list