为什么使用“\ t”而不是“<press tab =”“>”作为字符串?

时间:2016-02-22 22:13:56

标签: c++ tabs conventions

我只是尝试编译一些C ++代码,这些代码在字符串中使用了文字Tab字符(就像我在键盘上按下了TAB键)。令我惊讶的是,它汇编得很好。回想起来,我想这是有道理的,因为它就像其他任何一个角色一样。

cout << "Tab: [TAB]";

在此之前,我总是使用\t来定义字符串中的标签。

cout << "Tab: [\t]";

显然,在字符串中使用文字TAB的代码在可读性方面会受到很大影响,但是除了约定之外还有技术上的理由使用\t吗?

1 个答案:

答案 0 :(得分:6)

  

但使用\t除了约定之外还有技术原因吗?

当然有技术推理。使用

cout << "Tab: [\t]";

将独立于目标系统实际字符编码。

源文件可以使用与目标系统不同的编码,例如: UTF8表示源,但目标系统为EBCDIC '\t'将始终被转换为正确的字符代码,因此代码是可移植的。

同样如merlin2011 comment中所述,许多IDE只会将TAB替换为特定数量的空格。