
*-- To Tell The Truth --*
Cruz
MAIL
HOME
|
 |
2001年07月27日(金) ■ |
 |
基礎レベル |
 |
VC++でもなんでもない、フツーのC言語の話。
可変フォーマット出力 あんまりこんなことをしたいと考えたことが無かったから、 今まで知らずに生きてきた。 まぁ、その程度のレベルの話。
プリンターへの印刷処理を作っていたところ、 印刷データのフォーマットを整えねば・・・と思い、 あれこれ考えてみた。
出力データの縦のラインをそろえるためには、 指定文字数出力を行う%(文字数)sとかをやればいいのだが、 指定文字数がもしかしたら変わる場合・・・変わったらソースから検索して 修正するのはマヌケである。 こんなことを今さら知ったと言う方がマヌケかも?
・・・で、調査の結果(?)*を文字数の変わりに入れ、 出力データ指定部分で文字数の入った変数を与えればいいことがわかった。
#define NAME_DATA 20 #define USERDATE_DATA 20
sprintf(cpOutStr, "%-*s %*s", NAME_DATA, cpCardName, USERDATE_DATA, cpUseTime);
TextOut(printdlg.hDC, X, Y, cpOutStr, strlen(cpOutStr));
#define定義しちゃっているから、完全なる可変ではないのだけどね。 ちなみに%-*sの-は、左寄せってこと。
++++++++++++++
今日は、会社で創立記念式典だかなんだかがある。 よって、皆さん出席するために早く帰ることになる。 私は欠席。 お家へ帰らせて〜。
ちょっと気に入った2chのスレ どこでも一緒なんだなぁ。
|
|