【发布时间】:2021-10-09 09:40:02
【问题描述】:
我正在尝试用 C++ 打印一个二维矩阵。我有一个二维整数数组。输出如下所示:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
0 0 0 0 0 0 0 0 0 0 60 60 60 60 60 60 60 60 60 60 100 100 100 100 100 100 100 100 100 100 160
我的代码只是执行 2 次循环,并在每个数字后添加一个空格(并在每一行后添加一个换行符)。有没有一种简单的方法可以在 cpp 中打印格式良好的矩阵。像这样更具可读性的东西:
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 60 60 60 60 60
0 0 0 0 0 0 60 60 100 100 160
代码:
for(int i = 0; i <= n ; i++){
for(int w = 0; w <= W ; w++){
std:cout<<some_array[i][w]<<" ";
}
std::cout << std::endl;
}
【问题讨论】:
-
这能回答你的问题吗? How to print 2D Arrays in C++?
-
Is there an easy way不。但是这样做,编写代码,遍历每个元素,获取元素打印的宽度,记住每列中最宽的元素,再次重复每个元素,用空格填充元素提取列宽。 -
太好了,我会附上代码来做一下,寻找一种简单的方法,因为它看起来像很多人可能经常需要的东西。
-
for(int i = 0; i <= n ; i++)-- 任何以<=为循环条件的循环都是可疑的,因为它具有所有迹象都表明缓冲区溢出。 -
只需使用
std:cout<< setfill(5) << some_array[i][w];之类的东西来打印大小为 5 的字段中的值。