|
環境:bcc32
printfで固定幅で表示しようとしています。
文字列の表示ではうまくいきましたが、数値の表示ではダメでした。
正しい書式指定を、または代用方法をお教えください。
[test.c]
#include <stdio.h>
int main(void)
{
/* 文字列の表示は左詰めでスペース充填 */
printf("短|%-5.5s|\n", "123");
printf("長|%-5.5s|\n", "12345678");
/* 数値の10進表示は右詰めでスペース充填 */
printf("短|%5d|\n", 123);
printf("長|%5d|\n", 12345678);
/* 数値の16進表示は右詰めでゼロ充填 */
printf("短|%.5X|\n", 0x123);
printf("長|%.5X|\n", 0x12345678);
/* テスト */
printf("テ|%-5.5d|\n", 12345678);
printf("テ|%-5.5X|\n", 0x12345678);
return 0;
}
[出力]
短|123 | // OK
長|12345| // OK
短| 123| // OK
長|12345678| // NG:|45678|としたい,せめて|12345|としたい
短|00123| // OK
長|12345678| // NG:|45678|としたい,せめて|12345|としたい
テ|12345678|
テ|12345678|
|