在sprintf中隐藏整数

时间:2018-08-17 20:41:26

标签: c printf

当我的bool(fps)设置为false时,我尝试不打印任何内容。目前它显示为0,因为我不知道如何禁用该整数显示。

sprintf(drawdev, "%s%d", (fps) ? "FPS: " : "", (fps) ? framecount : 0);

如何使它不显示整数,就像“ FPS:”文本一样?

3 个答案:

答案 0 :(得分:2)

最干净的方法是摆脱三元并使用if

if (fps) {
    sprintf(drawdev, "FPS: %d", framecount);
} else {
    sprintf(drawdev, "");
}

答案 1 :(得分:0)

我会这样做:

fps?sprintf(drawdev,"FPS: %d",framecount):sprintf(drawdev,"FPS:");

答案 2 :(得分:0)

您可以使用精度修饰符%.*d,传递0将没有输出:

sprintf(drawdev, "%s%.*d", (fps) ? "FPS: " : "", !!fps, (fps) ? framecount : 0);