\t 宽度(你想知道的C语言 1.6)

Q: 制表符的起源是什么?

A:  “Tab”一词由英文“tabulate”派生而来,意思是“以表格、或表格形式排列数据”。在打字机上如果要输入一份文字或数字表格,必须不断使用空白键以及Backspace键,不仅重复也十分费时。为了简化这道程序,人们发明了可移动的杠杆,借由在横杆上移动而在页面不同位置输入。一开始这些机关必须手动设置,但不久便有了“Tab set”(设置Tab)与“tab clear”(清除Tab)按键。当Tab键弹起,打字机的滑动架便会推进到下一个定位点(tab stop),而这些定位点便对应到当前表格(即tab)的特定字段位置。Tab机制也成为一种快速且一致统一缩进各段落首行的方式。 (来源: 维基百科)

 

Q: '\t'占几个字符的宽度?

A:  C语言没有规定制表符的宽度是多少. 想象一种场景,不同设备的显示区域有差异, 也许有的显示屏幕宽度就只有8, 如果贸然规定制表符长度是8, 带制表符的行是不是就是空了?

     对于GUI应用程序, 可能会提供制表符长度的设置选项, vi提供:set ts的设置命令.

 

Q: 对于终端应用程序,是如何处理'\t'制表符的?

A: 以iTerm2为例, 在终端输入了Tab按键,执行流程如下:

iTerm2接收到制表符按键输入, 内部将计算tab占用的宽度并绘制cursor位置.

 

作者:     陈曦
环境:     MacOS 10.14.5
         Apple LLVM version 10.0.1 (clang-1001.0.46.4)
         Target: x86_64-apple-darwin18.6.0
 
转载请注明出处

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值