博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
printf()函数中\t,水平制表符,空格的个数,对齐打印
阅读量:4166 次
发布时间:2019-05-26

本文共 1043 字,大约阅读时间需要 3 分钟。

在控制台输出数据的时候,也就是用printf()的时候,我们经常用\t来控制对齐,以使输出的结果更加整齐美观。

然而有时候我们发现及时使用了\t 也会出现数据对不齐的情况,这就跟\t究竟对应几个空格有关系。

先给出程序和运行结果,再进行解释。

代码:

复制代码

#include 
#include
int main(int argc,char* argv){ printf("123456\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("1234567\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("12345678\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("123456789\t123\t45\n"); printf("12\t123456\t78\n"); printf("---------------------------------------\n"); printf("123456781234\t123\t45\n"); printf("12\t123456\t78\n"); return 0;}

复制代码

运行结果:

可以看到,出现了数据不能对其的情况。我们发现\t对应的空格的次数是不固定的,并不是我们所认为的4个空格或8个空格。

那么有什么规律呢。给个简单的公式  :

令  num = |n-8|%8, 其中n表示\t前面的字符占的位置(前面的字符也可能是转换说明,如%d,%10d等)。

那么\t对应的空格的个数 spaceNum,有

所以我们看到当\t前面为123456时,后面有两个空格;当\t前面为1234567时,后面有1个空格,而当前面正好为12345678时,后面跟8个空格

当前面为123456781234时,后面的空格数量为  |12-8|%8=4

 

转载地址:http://vkexi.baihongyu.com/

你可能感兴趣的文章
豆瓣爱问共享资料插件发布啦
查看>>
Ubuntu10.10 CAJView安装 读取nh\kdh\caj文件 成功
查看>>
kermit的安装和配置
查看>>
vim 配置
查看>>
openocd zylin
查看>>
进程创建时文件系统处理
查看>>
内核线程创建
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
java SE面向对象思维导图
查看>>
三维分析之视频投放
查看>>
SuperMap iDesktop之栅格值怎么查
查看>>
SuperMap iClient3D for WebGL教程-orientation
查看>>
SuperMap iClient3D for WebGL教程-description描述属性
查看>>
SuperMap iClient3D for WebGL教程-CallbackProperty
查看>>
如何修改leaflet聚合图的层级和样式
查看>>
三维分析之开敞度分析
查看>>
BIM+GIS应用的八大挑战
查看>>
.net实现.aspx页面自动加载.cs程序定义的变量并按照格式输出
查看>>
[Leetcode]最后一个单词的长度
查看>>