のフォーマットのprintfを使用してCで同じ幅の列は、私はこのコードを書いた:印刷
#include <stdio.h>
void printme(char *txt1, char *txt2, char *txt3)
{
printf("TXT1: %9s TXT2 %9s TXT3 %9s\n", txt1, txt2, txt3);
}
int main()
{
printme("a","bbbbbbbeeeeebbbbb","e");
printme("aaaaaaaa","bbbbbbbbbbbb","abcde");
return 0;
}
それは動作しますが、私は、このような出力を持っている:
TXT1: a TXT2 bbbbbbbeeeeebbbbb TXT3 e
TXT1: aaaaaaaa TXT2 bbbbbbbbbbbb TXT3 abcde
したがって、列の幅が等しくない。基本的には、私はこのようにしたいと思います。私の議論のテキストがどれほど長くても、私の関数はいつも素敵な書式設定された列を出力します。質問は、どうすればいいのですか?
素敵をsaingことで、私は私の印刷機能に渡すどのくらいのテキストに関係なく、それは常に例えば、等幅の列をプリントアウトすることを意味:
を、私はこのようになります。この出力を持っています:
私はそれがこのように(私のテキスト引数はなりますどのくらいに関係なく)を見てみたいa cd` fg ij
a cd fg ij
a cd fg ij
ab cd fg ij
ab cd fg i j
ab cd fg ij
ab cd fg ij
ab cde fgh ij
ab cde fgh ij
:
a cd` fg ij
a cd fg ij
a cd fg ij
ab cd fg ij
ab cd fg ij
ab cd fg ij
ab cd fg ij
ab cde fgh ij
ab cde fgh ij
* nice形式の列に* nice *を定義する*。 – ouah
あなたのテキストを先にスキャンし、最長の文字列が何であるかを調べ、その長さを列のパディング値に使用します。 –
おそらくhttp://stackoverflow.com/questions/2956296/printing-values-in-special-format-using-printfの複製物 –