Хотя это C ++, я использую printf
, потому что лаборатория, которую я выполняю, требует этого. Я нахожусь в затруднительном положении, когда я не могу понять, как правильно отформатировать следующее:
printf(" %-6s x%d, x%d // %08x\n", lookup(inst.opc_keys, inst.opc, inst.opc_vals).c_str(), inst.rd, inst.imm, list[i]);
Переменные произвольны для простоты, но я пытаюсь отформатировать это так, чтобы // %08x
- это всегда то же количество места, что и остальная часть оператора.
Идеальный пример вывода был бы:
addi x4, x4, -12 // 0xfffff
addi x4, x4, 2000 // 0xffffa
Но в том виде, в котором он у меня есть сейчас, он будет напечатан вот так:
addi x4, x4, -12 // 0xfffff
addi x4, x4, 20000 // 0xffffa
Еще раз, инструкции / числа здесь произвольны - просто используя это в качестве примера. Как мне правильно отформатировать это с помощью printf
? (т.е. без iostream)