sscanf() %n Bug Introduced in 20000221 Snapshot

Mark Rahner mark_rahner@Sparta.Com
Thu Mar 16 13:02:00 GMT 2000

Hi Folks,

I apologize for sending an HTML formatted message last time.  Here's the
plain text version...

This message documents a problem with sscanf() %n format specification
which began, to the best of my knowledge, with the 20000221 snapshot.
This problem did not exist in the 20000211 snapshot.  I'm using
Windows98 and Cygwin Beta 20.1 with upgrades consisting of Mumit's
2.95.2 compiler and the 200000221 snapshot.

Compiling the following using "g++ sscanfBug.C -o sscanfBug.exe"

     #include <stdio.h>
     #include <iostream>

     int main () {

         const char *str = "0.02";
         double num;
         int len;

         cerr << "str is <" << str << ">\n";

         sscanf( str, "%lf%n", &num, &len );

         cerr << "num is <" << num << ">\n";
         cerr << "len is <" << len << ">\n";

produces an executable which, when run, writes the following to standard

     str is <0.02>
     num is <0.02>
     len is <2>

The correct value for len is 4.  Please note that this is not the same
problem discussed on this mailing list last June.  Specifically, there
is no space preceding %n.  I apologize in advance for not presenting you
with a patch; after briefly attempting to track this bug myself, I
realized that I wasn't getting anywhere.

Hope this helps,
Mark Rahner

Want to unsubscribe from this list?
Send a message to

More information about the Cygwin mailing list