我只是尝试编译一些C ++代码,这些代码在字符串中使用了文字Tab字符(就像我在键盘上按下了TAB
键)。令我惊讶的是,它汇编得很好。回想起来,我想这是有道理的,因为它就像其他任何一个角色一样。
cout << "Tab: [TAB]";
在此之前,我总是使用\t
来定义字符串中的标签。
cout << "Tab: [\t]";
显然,在字符串中使用文字TAB
的代码在可读性方面会受到很大影响,但是除了约定之外还有技术上的理由使用\t
吗?
答案 0 :(得分:6)
但使用
\t
除了约定之外还有技术原因吗?
当然有技术推理。使用
cout << "Tab: [\t]";
将独立于目标系统实际字符编码。
源文件可以使用与目标系统不同的编码,例如: UTF8表示源,但目标系统为EBCDIC
'\t'
将始终被转换为正确的字符代码,因此代码是可移植的。
同样如merlin2011 comment中所述,许多IDE只会将TAB
替换为特定数量的空格。