Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 格式化表格-为什么'\t';换衣服?_C++_Formatting_Cout - Fatal编程技术网

C++ 格式化表格-为什么'\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

我想很好地格式化一个网格。它是9x9网格。我想划出界限

在每第三列之后-输入“*”

else-'\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 ;         
    }
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-这只是我不知道细节。