我有一个存储一些数据的多维数组,我想以矩阵形式打印它(到目前为止还没有问题),我想添加几个列和行以使其可读。像这样:
ionic start cutePuppyPics1 --v1
("内部广场"是我实际的2d阵列)
我的问题是,最好的方法是什么?
我目前的代码如下:
3 |
2 |
1 |
_ _ _
1 2 3
它工作正常,但感觉相当混乱。此外,如果我将数组的大小更改为超过10行/列,则数字不合适。 有没有办法在不改变原始数组的情况下正确格式化这个数组(我传入函数的那个数组)?
谢谢!
答案 0 :(得分:2)
您可以通过在printf格式字符串上指定宽度说明符来控制图形的标签宽度(右侧和底部的数字)。这样,所有标签的尺寸都相同。您还可以指定一个类似“--------------”的字符串(使其足够长以打印最长的条)并打印出由宽度说明符限制的数字。
示例:
printf("%*s ", length, "----------------------------------------");
答案 1 :(得分:0)
使用格式说明符和转义序列将文本放置在需要它出现的位置。例如这段代码:(来自关于printf和格式的教程)
#include<stdio.h>
main()
{
int a,b;
float c,d;
a = 15;
b = a / 2;
printf("%d\n",b);
printf("%3d\n",b);
printf("%03d\n",b);
c = 15.3;
d = c / 3;
printf("%3.2f\n",d);
}
生成此输出:
7
7
007
5.10
您特别感兴趣,因为您使用的是整数,请注意可以与&#34;%d&#34;一起使用的修饰符。格式说明符部分中的说明符:
转义序列:
\n (newline)
\t (tab)
\v (vertical tab)
\f (new page)
\b (backspace)
\r (carriage return)
\n (newline)
示例格式说明符:
%d (print as a decimal integer)
%6d (print as a decimal integer with a width of at least 6 wide)
%06d (same as previous, but buffered with zeros) (added)
%f (print as a floating point)
%4f (print as a floating point with a width of at least 4 wide)
%.4f (print as a floating point with a precision of four characters after the decimal point)
%3.2f (print as a floating point at least 3 wide and a precision of 2)
<强> There is more here 强>