On Thu, Jun 20, 2002 at 10:16:11AM -0700, David O'Brien wrote:
> > I have posted info about awk (which is nawk) incorrectly printing 
> > numbers between 10 and 15. It adds ascii '0' to value. 
> 
> This is *NOT* a fix.  nawk builds world just fine on my systems.
> Of course this leads one to wonder what is different about my systems and
> yours.
I'm trying to figure this too. Look at following program and it's output,
and please tell me what's wrong. It works as expected on -STABLE
and Linux.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int
main(int argc,char**argv)
{
        double a;
        int b;
        char bb[100];

        strcpy(bb,argv[1]);
        printf("%lf\n",strtod(bb,NULL));
        sscanf(bb,"%lf",&a);
        printf("%lf\n",a);
        sscanf(bb,"%f",&a);
        printf("%f\n",a);
        sscanf(bb,"%d",&b);
        printf("%d\n",b);

        return 0;
}

igorr@sysadm~> gcc -Wall qq.c
qq.c: In function `main':
qq.c:16: warning: float format, double arg (arg 3) <--- I have expected this
igorr@sysadm~> ./a.out 123
123.000000
0.124861
0.0<4861        <--- Pay attention 
123

IIRC this worked fine in preGCC3.1 world.

-- 
Igor Roboul, System administrator at Speech Technology Center
http://www.speechpro.com http://www.speechpro.ru


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to