sprintf() - 在一个占位符内左对齐多个单元

时间:2016-08-14 12:16:10

标签: c

我正在解码由占位符分隔的cpu操作码及其参数。

通过提供myop a0

,这与一个左侧单元完美配合
sprintf(dest, "%-16s%s", opcode, arg);

但是当我的操作码由几个单元组成时,例如myop.w.s a0,其中前3个单元需要位于占位符的左侧,并且arg跟随它,是什么让他们表现得像这里

sprintf(dest, "%s.%s.%s\t\t%s", opcode, param1, param2, arg);

但没有使用标签?

还有一种方法可以sprintf()两次,首先我创建一个组合字符串"myop.w.s",然后在第二个sprintf()我填充它,但我很好奇是否有其他解决方案。

1 个答案:

答案 0 :(得分:2)

根据需要打印前3个字符串和间距

snprintf(dest, 16, "%s.%s.%s%16s", opcode, param1, param2, "");
strcpy(dest + 16, arg);