我想以这种格式打印输出,但我不知道该怎么做:
0 1 2 3 4 5 6 7 8 9
----------------------------------------
0 | | | | | | a | | a | | |
----------------------------------------
1 | | | | a | | a | | X | a | |
----------------------------------------
2 | | | | | X | | | X | a | a |
----------------------------------------
3 | | | a | a | | a | | | | a |
----------------------------------------
4 | | | | | | X | | | a | |
----------------------------------------
5 | | | a | a | | | | X | a | |
----------------------------------------
6 | | | | a | a | | | | | a |
----------------------------------------
7 | | | | | | a | | a | | |
----------------------------------------
8 | | | | | | | | a | | |
----------------------------------------
9 | a | | a | | | a | | | a | |
----------------------------------------
目前我正在这样做:
int arr[10][10];
for(int i = 0; i < 10; i++) {
cout << i;
for(int j = 0; j < 10; j++) {
cout << "| ";
}
cout << endl;
}
这是我得到的输出:
0| | | | | | | | | |
1| | | | | | | | | |
2| | | | | | | | | |
3| | | | | | | | | |
4| | | | | | | | | |
5| | | | | | | | | |
6| | | | | | | | | |
7| | | | | | | | | |
8| | | | | | | | | |
9| | | | | | | | | |
我不确定如何在列顶部打印数字,也不知道如何在2&#34;之间使用字符。 |&#34;
答案 0 :(得分:0)
关于这些角色,我不知道你什么时候想要打印,但一个好方法就是:
int arr[10][10];
for(int i = 0; i < 10; i++) {
bool last_was_character = false;
cout << i;
for(int j = 0; j < 10; j++) {
cout << "| ";
last_was_character = false;
if(has_to_print_character)
{
cout << some_character;
last_was_character = true;
}
}
if (last_was_character) cout << "|";
cout << endl;
}
注意使用last_was_character布尔值。当我们打印一个不是|的字符时,这被设置为true,并且在每次迭代开始时我们将它重置为false。如果我们碰巧在last_was_character bool仍然设置为true的情况下退出循环,我们将不得不输出一个额外的|使其成为网格的最后一个字符。
你可能不得不用空格做一些格式化,但我现在还没有看过,因为你应该能够解决这个问题。
编辑: 为了打印您在评论中解释的字符,我建议您存储一系列坐标,说明要在哪里打印。像:
map<pair<int, int>, char> characters[SIZE]
现在您可以设置:
characters[{1, 2}] = 'a';
这会将坐标(1,2)的值设置为“a”。打印时,您可以这样做:
last_was_character = false;
cout << characters[{i, j}];
注意你的坐标是零,而不是一个!
重要提示:您必须
#include <map> and <utility>