This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Bug reading floating point numbers in gcc 2.95.3-4


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]