关于C语言中TAB制表符的位置,求大神(๑˙ー˙๑)

这里看不懂了,为什么第三个TAB区是在第17列,第五个TAB区是在33列,按照书上说的第三个不应该是第10+8列吗?

TAB制表符的位置是固定的,每8列为一个TAB区,每个区的第一个字符位置叫"制表位"。可知第一个制表位是是屏幕上左边第一个位置,第二个制表位是屏幕上第9个位置,如下表:
TAB区 位置
1 1
2 9
3 17
4 25
5 33
6 41
按一次TAB键或执行一次\t,光标从当前位置移动到最近的下一个制表位。
按书上的例子,先打印10个字符,这时光标位于第11位置,已经处于第二个TAB区,离光标最近的下一个制表位是第三个TAB区的第17位置,所以,执行\t后,光标移动到17位置,将在这个位置开始输出下一个数字。
同理,从第17位置开始输出另外10个字符后,光标就到达第27位,再次执行\t后,光标移动到下一个制表位33(第5个TAB区)。
而不是你所说的10+8位置。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-08
Tab是用来对齐的符号,Tab的区间是固定的,从左开始每8位算一个Tab区间(不管有没有字符显示都是这样子),当我们使用\t命令时,就是切换到下一个Tab区间,和你现在字符的具体位置没有关系,只与现在字符末尾字符的Tab区间有关系,比如10位的字符,末尾落在第二区间,则\t后从第三区间开始即17位,不管结尾是9、10、11、12等等,只要落在第二区间,那麼\t以後必然从第三区间17位开始。本回答被提问者和网友采纳
第2个回答  2019-01-16
\t 就是C语言的Tab制表符,这是一个转义字符,也叫逃逸字符,每个制表位应该是6个空格,但是我记得C语言没有那种可以精准定位的函数,建议可以自己写,我们不一定只用C语言自带的功能。
相似回答