将数组打印为均匀间隔的矩形

  • 本文关键字:数组 打印 c++ arrays width
  • 更新时间 :
  • 英文 :


好的,所以我把这段代码作为打印数组的项目的一部分:

#include <iostream>
#include <string>
#define ROWS 12
#define COLS 10
using namespace std;
void image_print(unsigned char image[ROWS][COLS]) {
for (int r = 0; r < ROWS; r++) {
for (int c = 0; c < COLS; c++) {
cout << +image[r][c] << " ";
}
cout << endl;
}  
}

输出如下:

0 0 0 0 0 0 0 0 0 0
0 64 10 55 127 235 203 241 163 0
0 207 115 62 37 77 43 186 1 0
0 1 119 234 125 172 90 206 103 0
0 113 193 181 158 69 31 85 212 0
0 161 84 27 145 121 211 192 123 0
0 114 4 29 214 80 231 64 71 0
0 173 251 191 221 241 94 76 81 0
0 126 53 138 141 43 78 32 108 0
0 244 4 11 193 240 99 56 154 0
0 131 141 82 198 212 92 217 148 0
0 0 0 0 0 0 0 0 0 0

但我希望它看起来像这样均匀分布:

0    0   0   0   0   0   0   0   0  0
0   64  10  55 127 235 203 241 163  0
0  207 115  62  37  77  43 186   1  0
0    1 119 234 125 172  90 206 103  0
0  113 193 181 158  69  31  85 212  0
0  161  84  27 145 121 211 192 123  0
0  114   4  29 214  80 231  64  71  0
0  173 251 191 221 241  94  76  81  0
0  126  53 138 141  43  78  32 108  0
0  244   4  11 193 240  99  56 154  0
0  131 141  82 198 212  92 217 148  0
0    0   0   0   0   0   0   0   0  0 

有什么聪明的方法可以让我做到这一点吗?

#include <iomanip>
cout << setw(3) << +image[r][c] << " ";

setw是一个I/O操纵器,用于设置要输出的下一个项目的字段宽度。

SetW是您要查找的函数。它设置要在输出中使用的字段宽度。这是更新后的代码:

#include <iostream>
#include <string>
#include <iomanip> 
#define ROWS 12
#define COLS 10
using namespace std;
void image_print(unsigned char image[ROWS][COLS]) {
for (int r = 0; r < ROWS; r++) {
for (int c = 0; c < COLS; c++) {
cout << std::setw(5)<<image[r][c] << " ";//setW added for settingwidth in output
}
cout << endl;
}  
}

相关内容

  • 没有找到相关文章

最新更新