Mail Archives: cygwin/2002/01/11/14:05:01
There seems to be a bug with trailing spaces and %n with sscanf strings.
In particular, %n fails if it is the last item in the format string and
it is preceeded with a space.
Here is some sample code:
#include <stdio.h>
main()
{
char foo[] = " name 1111.1 ";
char bar[8];
float ff;
int nc;
int r;
nc = 0;
r = sscanf(foo, " %s %f %n", bar, &ff, &nc);
printf (" space got:%d count:%d\n", r, nc);
nc = 0;
r = sscanf(foo, " %s %f%n", bar, &ff, &nc);
printf ("nospace got:%d count:%d\n", r, nc);
}
cygwin 1.3.6 outputs:
space got:2 count:0
nospace got:2 count:12
The correct output should be:
space got:2 count:13
nospace got:2 count:12
--
Bill Joye
wjoye AT cfa DOT harvard DOT edu
Smithsonian Astrophysical Observatory
Harvard-Smithsonian Center for Astrophysics
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -