我想要很好地格式化一个网格。它是9x9网格。我想把它分隔开
在每第三栏之后- "*“
其他的-‘t’。
每第三排放“?”?“
水平线工作得很好,这很容易。
但在第3栏中,它开始只打印2-3个空格,而不是'\t‘。
守则:
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 ;
}

我的问题是:为什么在红色区域打印2-3个空格而不是“t”?为什么‘t’改变它的长度??
发布于 2014-01-25 15:01:07
选项卡键没有一定的长度,它所做的只是将光标提前到文档中的下一个停止。
不同系统之间的距离可能会有所不同。
发布于 2014-01-25 15:03:35
你的密码没问题。这只是选项卡在控制台中的工作方式,它们进入下一个制表符停止,这将是非常8个字符。如果有5个字符已经从上一个制表符停止,它将只前进3个字符。
只需使用echo,就可以检查得到类似的结果。
echo -e "X\tX\nXXXXX\tX"
X X
XXXXX X如果您需要更多的空间,可以使用两个连续的制表符。如果您需要更多对对齐的控制,您可以停止使用选项卡,而是尝试使用std::setw。
发布于 2014-01-25 15:03:58
您真的不想在这里使用tab,而是要使用iostream 对准机械手。
https://stackoverflow.com/questions/21352091
复制相似问题