Friday, 15 April 2011

c - strtod is returning 0 -



c - strtod is returning 0 -

i've been working on project deals input file looks following:

a 0.0345 b 0.3945 ... z 0.2055

basically, i'm reading each line, after reading line, want pull only double out of string. i'm trying utilize strtod() , everyone's examples seem utilize fine in example, returns 0.

here code:

for (count = 0; count < 26; count++) { char buffer[100]; /* buffer line read fgets */ char *letters; /* stores string calculated strtod */ double relfreq = 0.0; if (fgets(buffer, 100, stream) != null) { relfreq = (double)strtod(buffer, &letters); /* since format 0.0000, we're grabbing double */ *(sampleone + count) = relfreq; /* add together relfreq array */ } }

through utilize of debugger, buffer has right data, instance a 0.0345\n when strtod() returns value it's 0. help appreciated!

since first character non-numeric, strtod should returning letters equal buffer (the first character invalid), indicating nil has been read.

you should able prepare passing &buffer[2], number starts:

relfreq = strtod(&buffer[2], &letters);

demo.

c string double

No comments:

Post a Comment