当\ t在C中遇到\ b时会发生什么?

时间:2017-03-12 00:46:46

标签: c printf non-printable non-printing-characters

我知道\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

1 个答案:

答案 0 :(得分:2)

printf("\b")向标准输出发送退格符。 printf("\t")向标准输出发送制表符。从那里到环境会发生什么;你的程序无法真正控制它。

在典型的交互式输出设备上,退格键会将光标向左移动一列(不删除任何内容),并且制表符会将光标移动到下一个tabstop(也不会删除任何内容)。这应该解释你所看到的。

(实际上我获得的输出与你向我们展示的输出不同,这让我想到你正在使用的终端有不同的东西,或者你错误地转录了输出。)