[英]Perl sprintf formatting of colored output
如何在此語句中生成固定寬度的輸出?
use Term::ANSIColor;
printf("%s",sprintf("[%8s]",colored(sprintf("\$%0.2f",$Price),'red')))
%8s
在此語句中沒有任何作用。 有沒有顏色意識的格式說明符?
當然可以,只是更改終端顏色的代碼也具有寬度,因此傳遞給第一個sprintf
調用的字符串已經超過8個字符。 嘗試一下
sprintf("[%18s]", ...
就會看到影響。
但是終端代碼的寬度是深奧的,因此最好將顏色編碼移到固定寬度格式之外。
printf("[%s]", colored( sprintf("%8s", sprintf("\$%0.2f",$Price) ),'red') )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.