Hi Jim!

On Fri, May 9, 2014 at 5:29 PM, Jim Michaels <j...@yoohoo.com> wrote:
> I could not find a good example on this because examples in books are scarce
> as hen's teeth. search engines ignore the * character and maybe even
> interpret it like a wildcard. :-/ so examples on the web are out.
>
> #include <stdio.h>
> int main(void) {
>     double d=1234567890.123456789;
>     int width=7,precision=3;//tried 3 and 9
>     printf("width=%d, precision=%d, d=%*.*f\n", width, precision, d);
> //generates forever loop of spaces, program hangs.
>     return 0;
> }

I think that you have too few arguments to your printf call.

I don't actually know what "%*.*f" does, but I assume it uses printf
arguments to specify the actual format.  But (according to my
assumption) "width=%d, precision=%d" has already used up the
arguments that "%*.*f" is expecting.

When I change the line

   printf("width=%d, precision=%d, d=%*.*f\n", width, precision, d);

to

   printf("width=%d, precision=%d, d=%*.*f\n", width, precision,
width, precision, d);

the program works as I would expect, printing out

   width=7, precision=3, d=1234567890.123

> I need to use this. but it seems broken. it just locks up generating spaces
> no matter what I put in for numbers. I don't think that's right.
>
> Jim Michaels
> ...


Good luck.


K. Frank

------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to