printf()函数的 e格式符输出的空格原理是什么

e格式符输出的那个空格我没搞清楚,那个空格是什么原理 怎么算的
比如:printf("%11.2e\n",1145126.2311567)
最后输出的结果是: 1.15e+06 这个结果的左边有三个空格
printf函数里面的%11.2的11是输出的数据占11位(这里是指什么) 2这儿是取两位小数(该四舍五入就四舍五入)
因为指数占4位,所以e+06占据11位里的4位,1.15也占11位里的4位(包括了小数点),由于还差3位所以左边补空格。
这里是不是跟所占的字节无关?

%e:浮点数,e指数形式,小数点前有且仅有一位非零数,指数部分一般占4位
这个地方的占4位是指的小数位还是什么位

以小数形式输出实数,
用e时指数以“e”表示(如1.2e+02),
用E时指数以“E”表示(如1.2E+02)。
默认输出格式小数位数6位,指数5列(e+002)
例如:
%m.nf指定输出的数据共有m位,其中有n位小数。如果数值长度小于m,则左端补空格;如果长度超过m,原样输出。%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。
%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

跟字节肯定没有关系,这里的位只跟位置有关,就是通俗的讲就是占一个坑。这里的占四位不是指小数,就是指指数位。望采纳

我是理解为字符总宽度 %m.n 总宽度为m,小数点后宽度为n

供参考:https://baike.baidu.com/item/printf/7467706?fr=aladdin

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^