簡體   English   中英

Perl sprintf格式化彩色輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM