【发布时间】:2012-10-17 04:15:27
【问题描述】:
我想实现一个文字绘制功能。但我不确定\t 是如何工作的,这意味着我不知道应该为\t 打印多少空格。
我想出了以下算法:
a) 每个\t 最多代表NUMBER_OF_SPACES_FOR_TAB 个空格。
b) 如果\t出现在最后一行的相应位置,则该行的\t应与最后一行的\t对齐。
例子:
printf("a\t\tb\n");
printf("\t\tc\n");
应该打印:
a11112222b
34444c
地点:
1.Number i代表\t在位置i的空格
2.NUMBER_OF_SPACES_FOR_TAB == 4
有人知道标准算法吗?提前致谢。
【问题讨论】:
-
文本编辑器通常在每 X 列对齐制表符,独立于其他字符
-
你猜还是知道?您描述的规则不是标签的常用规则,尽管您可能被告知要使用它们。
-
@john 我只是猜测是否有标准算法
-
通常的规则就是alestanis所说的。
-
还有,请把制表符当作自己的字符。永远不要认为它是一堆空格的简写。我无法计算我见过的源文件的数量,其中一些脑死亡的编辑器完全破坏了缩进,因为它被编程为将制表符视为固定数量的空格。它是一个独立的角色,一个具有自身非常重要意义的角色,一个应该受到尊重的角色。