C++ 格式化表格-为什么'\t';换衣服?
我想很好地格式化一个网格。它是9x9网格。我想划出界限 在每第三列之后-输入“*” else-'\t' 在每第三排之后放入“---------------------------” 水平线很好地工作-这很容易 但在第3列中,它只开始打印2-3个空格,而不是“\t” 守则:C++ 格式化表格-为什么'\t';换衣服?,c++,formatting,cout,C++,Formatting,Cout,我想很好地格式化一个网格。它是9x9网格。我想划出界限 在每第三列之后-输入“*” else-'\t' 在每第三排之后放入“---------------------------” 水平线很好地工作-这很容易 但在第3列中,它只开始打印2-3个空格,而不是“\t” 守则: static int grid[9][9] ; void print_grid(){ cout << "PRINTING GRID" <<endl ; for(int row
static int grid[9][9] ;
void print_grid(){
cout << "PRINTING GRID" <<endl ;
for(int row = 0 ; row < 9 ; row++){
for(int column = 0 ; column < 9 ; column++){
if(column > 0 && (column + 1) % 3 == 0 && (column + 1) != 9 )
cout <<grid[row][column] << " * " ;
else cout <<grid[row][column] <<"\t" ;
}
if( (row+1) % 3 == 0){cout <<endl ;
cout << "---------------------------------------------------------------------" <<endl ;}
else cout <<endl <<endl ;
}
}
int main(){
print_grid() ;
return 0 ;
}
static int grid[9][9];
无效打印网格(){
couttab键没有特定的长度,它所做的只是将光标提前到文档中的下一个停止点
停止之间的距离长度可能因系统而异。tab键没有特定的长度,它所做的只是将光标提前到文档中的下一个停止
停止之间的距离长度可能因系统而异。您的代码很好。这正是选项卡在控制台中的工作方式,它们将转到下一个选项卡停止,该选项卡停止的长度将为8个字符。如果自上一个选项卡停止后已经有5个字符,则只会提前3个字符
您可以通过使用echo检查是否得到类似的结果
echo -e "X\tX\nXXXXX\tX"
X X
XXXXX X
如果您想要更多的空间,可以使用两个连续的制表符。如果您想要更多的对齐控制,您可以停止使用制表符,并尝试使用std::setw。您的代码很好。这只是制表符在控制台中的工作方式,它们会转到下一个制表符停止,该制表符停止将非常8个字符。如果自上次制表符停止后已经有5个字符,则t将只前进3个字符
您可以通过使用echo检查是否得到类似的结果
echo -e "X\tX\nXXXXX\tX"
X X
XXXXX X
如果你想要更多的空间,你可以使用两个连续的标签。如果你想要更多的对齐控制,你可以停止使用标签,尝试使用std::setw。你真的不想在这里使用iostream。你真的不想在这里使用iostream。天哪,我刚改变了“\t”到“”-3个空格,看起来不错!所以我应该学习该语言的详细信息-因为你可以花时间查找bug-这只是我不知道细节。天哪,我刚刚将“\t”更改为“”-3个空格,看起来不错!所以我应该学习语言的细节-因为你可以花时间寻找bug-这只是我不知道细节。