首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式化表-为什么“t”会被更改?

格式化表-为什么“t”会被更改?
EN

Stack Overflow用户
提问于 2014-01-25 14:55:37
回答 3查看 195关注 0票数 0

我想要很好地格式化一个网格。它是9x9网格。我想把它分隔开

在每第三栏之后- "*“

其他的-‘t’。

每第三排放“?”?“

水平线工作得很好,这很容易。

但在第3栏中,它开始只打印2-3个空格,而不是'\t‘。

守则:

代码语言:javascript
复制
  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’改变它的长度??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-25 15:01:07

选项卡键没有一定的长度,它所做的只是将光标提前到文档中的下一个停止。

不同系统之间的距离可能会有所不同。

票数 1
EN

Stack Overflow用户

发布于 2014-01-25 15:03:35

你的密码没问题。这只是选项卡在控制台中的工作方式,它们进入下一个制表符停止,这将是非常8个字符。如果有5个字符已经从上一个制表符停止,它将只前进3个字符。

只需使用echo,就可以检查得到类似的结果。

代码语言:javascript
复制
echo -e "X\tX\nXXXXX\tX"
X       X
XXXXX   X

如果您需要更多的空间,可以使用两个连续的制表符。如果您需要更多对对齐的控制,您可以停止使用选项卡,而是尝试使用std::setw。

票数 1
EN

Stack Overflow用户

发布于 2014-01-25 15:03:58

您真的不想在这里使用tab,而是要使用iostream 对准机械手

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21352091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档