有没有办法在 C++ 中为 TAB 字符(反斜杠 t)“\t”设置特定数量的最大空格?

Is there a way to set a specific amount of maximum spaces for TAB character (backslash t) "\t" in C++?

我想打印一个方阵,每个元素之间需要 spaced 3 spaces。然后我发现 char '\t' 可能是最简单的方法。但是,我认为 space 的数量是以某种方式在某些算法中定义的。有人可以通过该算法给我一个指导,或者有没有办法在 C++ 中为 '\t' 设置某些 space?

我知道如何通过确定space个字符的数量来手动输出。然而 '\t' 似乎很容易编写代码而不是循环某些算法。

对于简单的方阵:

for (int x = 0, num = 1; x < 5; x++) {
        for (int y = 0; y < 5; y++, num++) {
            cout << num << "\t";
        }
        cout << endl;
    }

代码输出

1       2       3       4       5
6       7       8       9       10
11      12      13      14      15
16      17      18      19      20
21      22      23      24      25

在我需要的时候

1   2   3   4   5
6   7   8   9   10
11  12  13  14  15
16  17  18  19  20
21  22  23  24  25

有没有办法设置'\t'?

我很确定选项卡的大小是由您的控制台定义的,因此这将是您的 IDE 的设置。 如果您想要一致数量的空格,最好使用空格。这样你就不必改变你 运行 你的代码的所有内容的控制台设置。为什么不做类似

的事情
"    "

而不是“\t”?

编辑:显然 Stack overflow 不支持多个空格 in-text。

But, I think the number of spaces is somehow defined in certain algorithm.
...
Is there a way to set '\t'?

除非您连接的终端允许您以某种方式控制它。

使用 I/O manipulators 控制输出格式的常用方法,适合您的情况

  • std::setw()
  • std::left(或者对于数字可能更好std::right