On Tue, 2 Apr 1996, Marcelo Valle Moreira wrote:
> Hmmmm, If I'm using a long int arg, I can't use %d to get it 'cause I get the warning: int format, long int arg.
> What can I use instead of %d so I can get rid of exp 0.0000(null) and my display stops with this boring 0.000000H 0.000000M 0.000000V >?
You need to set your column limit to about 75 instead of infinity.
And %f should give you floating point, not %d. Use this chart:
%d Short signed int
%u Short unsigned int
%x Short unsigned hex int, lowercase (ffff)
%X Short unsigned hex int, uppercase (FFFF)
%ld Long signed int (regular int on a 32-bit cc)
%lu Long unsigned in
%lx Long unsigned hex int, lowercase (ffffffff)
%lX Long unsigned hex int, uppercase (FFFFFFFF)
%f Floating point, dunno the precision
%lf Long floating point ?
%p Pointer to variable in memory
Type depends on cc, usually 32-bit int in form of 0xaddr
Always thought the default precision was 5 (%.5f) but you've got 4 on
your example. Well, I've been wrong before, and it changes from cc to cc
anyway.
But if printf("Experience: %f\n", player->exp) gives you Experience:
0.0000(null), then you've got SERIOUS problems, way beyond this. Have
you got a %p floating around or a %s or something strange like that?
It's pretty impressive you aren't getting an error on that. Well, you
shouldn't use floats without a cast of some kind or the cc may die (or
just incorrectly convert) on you. If you must use fp's, try
printf("Experience: %.0f\n", (double) player->exp) which should at least
give you something close to the right value. I think fp's lose precision
at somewhere around 20 million, though I might be thinking of DOS again.
> WidowMaker@jaguari.dcc.unicamp.br 6666
>
________________________________________________________________________
Tel Janin Aellinsar http://www.crocker.com/~icarus
McCoy Enterprises Corporation Shayol Ghul Resort and Health Spa
Berserker Dragon, Knights of the Cosmos icarus@BERKSHIRE.NET
This archive was generated by hypermail 2b30 : 12/18/00 PST