在我的代码中,图例在一个循环中运行,我试图用
0-10%
10-20%
等等问题是我写这段代码的时候
legend->AddEntry(gr[i], Form("%d0-%d0 %%",i+0,i+1), "lep");
它表明
00-10%
10-20% etc
那么如何在第一行中不显示00,而是显示0呢?
在我的代码中,图例在一个循环中运行,我试图用
0-10%
10-20%
等等问题是我写这段代码的时候
legend->AddEntry(gr[i], Form("%d0-%d0 %%",i+0,i+1), "lep");
它表明
00-10%
10-20% etc
那么如何在第一行中不显示00,而是显示0呢?
对所展示的陈述稍加修改就足够了;使用:
legend->AddEntry(gr[i], Form("%d-%d %%", i*10 , (i+1)*10), "lep");
Explanation:
Form("%d0-%d0 %%",i+0,i+1)
似乎是某种字符串格式,i
是循环变量,从0到9运行,对吗?所示的Form
语句只是在i
中的一位数后面加上硬编码的"0";相反,你可以将i乘以10,得到你想要打印的实际数字;由于10*0仍然是0,这仍然是一个位数;所以,替换之前的表单(…)拨打Form("%d-%d %%", i*10, (i+1)*10)
,你应该会得到你想要的结果!
如果您担心打印i*10
比打印后缀为"0"的i"效率低",请不要这样做.字符串的格式和输出很可能比乘法慢几个数量级,因此执行多次乘法的任何开销都可以忽略不计.