C言語関係掲示板

過去ログ

No720 1だったら右に19999と全部で5桁として9を詰めたい

[戻る] [ホームページ]
No.8717

printfについて
投稿者---yuka(2003/07/31 10:06:34)


おはつです。。
printfの0詰めで
1だったら右に19999と全部で5桁として9を詰めたいのですがどうしたらよいのでしょうか?
ちなみに00001はできました。。
宜しくお願いします。。

No.8722

Re:printfについて
投稿者---q(2003/07/31 11:17:13)


>printfの0詰めで
>1だったら右に19999と全部で5桁として9を詰めたいのですがどうしたらよいのでしょうか?


const char *pad = "99999";
char s[256];
int n;

n = 1;
sprintf(s, "%d", n);
printf("%s%.*s\n", s, (int)(strlen(pad)-strlen(s)), pad);

または、

char s[256], *space;
int n;

n = 1;
sprintf(s, "%-5d", n);
space = strchr(s, ' ');
while (*space) *space++ = '9';
printf("%s\n", s);


こんな感じでどうでしょうか。