在 bash 中的 C++ 输出中设置选项卡宽度

yo'*_*yo' 6 terminal columns text-formatting

我有一个c++程序,我使用制表符"\t"将我的输出组织到人类可读的列中。但是,bash 中 8 个空格宽的列对我来说太窄了。我怎样才能增加它?

注意:在 C++ 论坛中,人们说:“C++ 只输出字符,不负责可见输出”。在 linux 论坛中,人们说:“可能是您用来输出到终端的程序对此负责less。”

der*_*ert 4

您可以使用终端数据库更改终端中的制表位,您可以通过多种方式从 C++ 访问该数据库(例如 ncurses)。您还可以使用 shell 从 shell 访问它tput

您需要首先清除选项卡 ( tput tbc)。然后将光标移动到要在其中添加制表位的每一列(tput hpa 10例如,第 10 列)。最后设置制表位 ( tput hts)。对所需的每个制表位重复定位和制表位设置。例子:

echo -e '0\t1\t2\t3\t4\t5\t6\t7\t8'
tput tbc
for ((i=0; i<`tput cols`; i+=10)); do
    tput hpa $i
    tput hts
done
tput hpa 0
echo -e '0\t1\t2\t3\t4\t5\t6\t7\t8'
Run Code Online (Sandbox Code Playgroud)