【发布时间】:2017-03-12 00:46:46
【问题描述】:
我知道\t 和\b 是什么意思。
但是当\b 在\t 之后会发生什么,以及当多个\b 和\t 组合时会发生什么。
看这段代码,里面包含了\t和\b的多种组合:
printf("1\t1\t1\t1\n");
printf("---------------------------\n");
printf("1\t2\b\b3\n");
printf("\t\b1\n");
我明白了:
1 1 1 1
---------------------------
1 32
1
两个\b 显示不同。
结果令人困惑,以我现有的知识根本无法解释。
不知道到底\t和\b怎么理解。
【问题讨论】:
-
你首先需要知道你的正确输出应该是什么样子
-
@artm 感谢您的回复。但我现在不知道什么是对。输出让我很困惑。
-
您还需要描述
stdout实际上是什么设备。例如,它是否被重定向到一个文件,如果是,如何查看输出?假设它没有被重定向,那么正在使用什么显示设备?不同的设备(和设备驱动程序)以不同的方式处理制表符,甚至退格(例如,如果行上的第一个字符)可以以不同的方式处理。还有一些设置会影响标签。 -
@Peter 谢谢。在相同的环境下,我无法解释输出。这里我使用 Windows Clang 编译器,CLion 控制台显示结果。
-
这真的与C无关。如果你只是将相同的数据直接复制到终端,你会得到相同的结果。
标签: c printf non-printable non-printing-characters