在我的代码中,图例在一个循环中运行,我试图用

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"效率低",请不要这样做.字符串的格式和输出很可能比乘法慢几个数量级,因此执行多次乘法的任何开销都可以忽略不计.

C++相关问答推荐

将 typewriter LF打印到Windows终端,而不是隐含的CR+LF

有没有可能我不能打印?(C,流程)

仅在给定的大小和对齐方式下正确创建全局

如何在c++中包装返回空*的函数

使用错误的命令执行程序

获取每个循环迭代结束时的当前时间

为什么中断函数会以这种方式影响数组?

FRIDA-服务器成为端口扫描的目标?

使用TCL C API导航到列表中的元素

为什么编译器不能简单地将数据从EDI转移到EAX?

C";中的ANN运行时判断失败#2-变量outputLayer;周围的堆栈已损坏.运行后出错

未使用sem_open正确初始化信号量

我错误地修复了一个错误,想了解原因

如何在Rust中处理C的longjmp情况?

C 错误:对 int 数组使用 typedef 时出现不兼容的指针类型问题

如何向 execl 创建的后台程序提供输入?

`void foo(int a[static 0]);` 有效吗?

C23 中是否有 __attribute__((nonnull)) 的等效项?

如何在C中以0x格式打印十六进制值

如何在 C 中转储变量的位?