c++ - 为什么对字符串使用 "\t"而不是 "<press TAB>"?

标签 c++ tabs conventions

<分区>

我只是尝试编译一些 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中所述的 comment许多 IDE 只会用特定数量的空格替换 TAB

关于c++ - 为什么对字符串使用 "\t"而不是 "<press TAB>"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35564994/

相关文章:

android - 如何在 android 的 Tabwidget 中删除填充或边距?

c# - 命名数字作为变量

c++ - 用C++写入文件

c++ - 头文件更改时,Visual Studio 2019 未构建所有 cpp 文件

iOS Tabs 相互交谈

javascript - 是否可以使用 ie 选项卡 View 在 chrome 上调试 javascript?

c++ - 准确地创建范围 [a,b) 中的浮点值

时间:2019-03-08 标签:c++typedefgenerics

Java三元运算符: should check for condition or !条件?

java - Gradle:为什么传统的java构建类路径与java源路径相反