- 締切済み
空白表示
C言語がまだ初心者なので教えてほしいのですが、空白をどうやったら表示できるのか分かりません。 +----+--+--+--+--+ | | | | | | +----+--+--+--+--+ このように表示するためにはどのようなコードを打てばいいんでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#include <stdio.h> void hline(int cols, int widths[]){ int i,j; for(i=0;i<cols;i++){ printf("+"); for(j=0;j<widths[i];j++){ printf("-"); } } printf("+\n"); } void vline(int cols, int widths[]){ int i,j; for(i=0;i<cols;i++){ printf("|"); for(j=0;j<widths[i];j++){ printf(" "); } } printf("|\n"); } void main(void){ printf("+----+--+--+--+--+\n"); printf("| | | | | |\n"); printf("+----+--+--+--+--+\n"); printf("\n"); { int width[]={ 4, 2, 2, 2, 2, }; int cols = sizeof(width)/sizeof(int); hline(cols, width); vline(cols, width); hline(cols, width); } }
- Trick--o--
- ベストアンサー率20% (413/2034)
printf("+----+--+--+--+--+\n"); printf("|____|__|__|__|__|\n"); printf("+----+--+--+--+--+\n"); (_は半角空白に置き換えてください) ただし、当幅でないフォントを使っていたりすると綺麗にそろいません。 数値を桁揃えで表示したいとき 整数の場合 printf("%5d\n",n); 5桁右詰で表示。超えた分は右にはみ出す。 printf("%05d\n",n); 同上。ただし、4桁以下の場合は上位桁に0を補完する。 例:(空白は_で代用) printf("%5d\n",100); printf("%05d\n",100); printf("%5d\n",100000); // 桁が超えている場合は%05dも同じ --- __100 00100 100000 小数の場合 printf("%6.2f\n",d); 小数点以下2桁(丸め/0補完)。小数点、整数部含めて6桁右詰。 printf("%06.2f\n",d); 同上。ただし、整数部上位桁0補完 例:(空白は_で代用) printf("%6.2f\n",12.789); printf("%06.2f\n",12.789); printf("%06.2f\n",123.7); printf("%06.2f\n",123.7); printf("%6.2f\n",12345.789); --- _12.79 012.79 123.70 12345.70 12345.79
- likipon
- ベストアンサー率38% (44/114)
普通にprintfを使って, 間に半角スペースを 入れるのではだめですか? 表形式にして数値を入れたいという場合には, printf("|%5d|%5d|\n", hoge1, hoge2); というような書き方もあります. %d のかわりに%5dなどと書くと, 数値が5桁以下でも 表示幅が5桁になるように スペースを入れてくれます. printf関数の仕様を紹介している文書やサイトに色々書いてありますので 参考にしてみてください.