Hi. I think glibc (as many other libc implementations, to be clear), doesn't deal correctly with this corner case: #include <stdio.h> int main() { float f = 0.0; char s[] = "100ergs of energy"; int p = sscanf(s, "%f", &f); printf("%f %d\n", f, p); return 0; } It outputs "100.000000 1", and should be "0.000000 0". See EXAMPLE 3 in 7.19.6.2/20.
This is stupidity on the ISO C committee side which goes against existing practice. Any change can break existing code.
*** Bug 23274 has been marked as a duplicate of this bug. ***
Being tracked in bug 12701. *** This bug has been marked as a duplicate of bug 12701 ***