Reputation: 63
I'm trying to print nothing when my bool (fps
) is set to false
. At the moment it prints 0, because I have no other idea how I would disable the integer from displaying.
sprintf(drawdev, "%s%d", (fps) ? "FPS: " : "", (fps) ? framecount : 0);
How can I make it so the integer doesn't display, just like the "FPS: " text?
Upvotes: 0
Views: 239
Reputation: 41065
You can use the precision modifier %.*d
, passing 0
will have no output:
sprintf(drawdev, "%s%.*d", (fps) ? "FPS: " : "", !!fps, (fps) ? framecount : 0);
Upvotes: 0
Reputation: 225827
The cleanest way to do this is to get rid of the ternary and use an if
:
if (fps) {
sprintf(drawdev, "FPS: %d", framecount);
} else {
sprintf(drawdev, "");
}
Upvotes: 2
Reputation: 53
I would do this:
fps?sprintf(drawdev,"FPS: %d",framecount):sprintf(drawdev,"FPS:");
Upvotes: 0