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

Why use "\t" instead of "<press TAB>" for strings?

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

cout << "Tab: [TAB]";

以前我一直使用\t来定义字符串中的制表符。

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

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

but is there a technical reason to use \t other than convention?

当然有技术推理。使用

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

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

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


也如 merlin2011's 中所述,许多 IDE 只会用特定数量的空格替换 TAB