dポイントプレゼントキャンペーン実施中!

C言語がまだ初心者なので教えてほしいのですが、空白をどうやったら表示できるのか分かりません。
+----+--+--+--+--+
| | | | | |
+----+--+--+--+--+

このように表示するためにはどのようなコードを打てばいいんでしょうか?
よろしくお願いします。

A 回答 (3件)

#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);
}

}
    • good
    • 0

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
    • good
    • 0

普通にprintfを使って, 間に半角スペースを


入れるのではだめですか?

表形式にして数値を入れたいという場合には,
printf("|%5d|%5d|\n", hoge1, hoge2);
というような書き方もあります.
%d のかわりに%5dなどと書くと, 数値が5桁以下でも
表示幅が5桁になるように
スペースを入れてくれます.

printf関数の仕様を紹介している文書やサイトに色々書いてありますので
参考にしてみてください.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!