1

このステートメントで固定幅の出力を生成するにはどうすればよいですか?

use Term::ANSIColor;
printf("%s",sprintf("[%8s]",colored(sprintf("\$%0.2f",$Price),'red')))

は、この%8sステートメントでは何の効果もありません。色を意識したフォーマット指定子はありますか?

4

1 に答える 1

9

確かに、端末の色を変更するコードにも幅があるため、最初のsprintf呼び出しに渡す文字列はすでに 8 文字を超えています。で試してみてください

sprintf("[%18s]", ...

そしてあなたは影響を見るでしょう。

ただし、端末コードの幅は難解なので、色分けを固定幅フォーマットの外に移動した方がよいでしょう。

printf("[%s]", colored( sprintf("%8s", sprintf("\$%0.2f",$Price) ),'red') )
于 2013-10-29T16:16:49.930 に答える